mirror of
https://github.com/corda/corda.git
synced 2025-01-07 13:38:47 +00:00
c0d178d5f1
This is the simplest possible ConcurrentHashMap I could come up with that works and is actually concurrent in the way one would expect. It's pretty unconventional, being based on a persistent red-black tree, and not particularly memory-efficient or cache-friendly. I think this is a good place to start, though, and it should perform reasonably well for most workloads. Patches for a more efficient implementation are welcome! I also implemented AtomicReferenceArray, since I was using it in my first, naive attempt to implement ConcurrentHashMap. I had to do a bit of refactoring, including moving some non-standard stuff from java.util.Collections to avian.Data so I could make it available to code outside the java.util package, which is why I had to modify several unrelated files. |
||
---|---|---|
.. | ||
avianvmresource | ||
file | ||
http | ||
jar | ||
Addendum.java | ||
AnnotationInvocationHandler.java | ||
Assembler.java | ||
Atomic.java | ||
Callback.java | ||
CallbackReceiver.java | ||
Cell.java | ||
ClassAddendum.java | ||
Classes.java | ||
ConstantPool.java | ||
Continuations.java | ||
Data.java | ||
FieldAddendum.java | ||
IncompatibleContinuationException.java | ||
InnerClassReference.java | ||
Iso88591.java | ||
LegacyObjectInputStream.java | ||
LegacyObjectOutputStream.java | ||
Machine.java | ||
MethodAddendum.java | ||
PersistentSet.java | ||
Singleton.java | ||
Stream.java | ||
SystemClassLoader.java | ||
Traces.java | ||
Utf8.java | ||
VMClass.java | ||
VMField.java | ||
VMMethod.java |