corda/classpath/avian
Joel Dice c0d178d5f1 implement ConcurrentHashMap and AtomicReferenceArray
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.
2014-03-12 10:44:24 -06:00
..
avianvmresource update copyright years 2013-07-02 20:52:38 -06:00
file update copyright years 2013-07-02 20:52:38 -06:00
http update copyright years 2013-07-02 20:52:38 -06:00
jar add jdk-test target, and fix failures 2013-12-06 15:00:02 -07:00
Addendum.java update copyright years 2013-07-02 20:52:38 -06:00
AnnotationInvocationHandler.java Use the default value in annotations' proxies 2013-11-26 15:28:20 -06:00
Assembler.java add jdk-test target, and fix failures 2013-12-06 15:00:02 -07:00
Atomic.java add bare-bones ConcurrentLinkedQueue implementation 2011-09-29 18:26:50 -06:00
Callback.java update copyright years 2013-07-02 20:52:38 -06:00
CallbackReceiver.java update copyright years 2013-07-02 20:52:38 -06:00
Cell.java update copyright years 2013-07-02 20:52:38 -06:00
ClassAddendum.java fix Class.getDeclaredMethods 2014-03-10 08:51:00 -06:00
Classes.java fix Class.getDeclaredMethods 2014-03-10 08:51:00 -06:00
ConstantPool.java update copyright years 2013-07-02 20:52:38 -06:00
Continuations.java update copyright years 2013-07-02 20:52:38 -06:00
Data.java implement ConcurrentHashMap and AtomicReferenceArray 2014-03-12 10:44:24 -06:00
FieldAddendum.java update copyright years 2013-07-02 20:52:38 -06:00
IncompatibleContinuationException.java update copyright years 2013-07-02 20:52:38 -06:00
InnerClassReference.java Implement Class#getDeclaredClasses 2013-11-06 09:07:58 -06:00
Iso88591.java update copyright years 2013-07-02 20:52:38 -06:00
LegacyObjectInputStream.java Implement a rudimentary Java-compatible ObjectInputStream 2013-11-06 09:10:51 -06:00
LegacyObjectOutputStream.java Implement a Java-compatible ObjectOutputStream 2013-11-06 09:10:50 -06:00
Machine.java add jdk-test target, and fix failures 2013-12-06 15:00:02 -07:00
MethodAddendum.java update copyright years 2013-07-02 20:52:38 -06:00
PersistentSet.java modify TreeSet.MyIterator to support both ascending and descending iteration 2013-12-04 17:52:27 -07:00
Singleton.java update copyright years 2013-07-02 20:52:38 -06:00
Stream.java update copyright years 2013-07-02 20:52:38 -06:00
SystemClassLoader.java Teach SystemClassLoader#getResources to not stop at the first match 2013-11-04 16:49:34 -06:00
Traces.java add avian.trace.port property 2013-03-08 14:47:27 -07:00
Utf8.java update copyright years 2013-07-02 20:52:38 -06:00
VMClass.java fix Class.getDeclaredMethods 2014-03-10 08:51:00 -06:00
VMField.java update copyright years 2013-07-02 20:52:38 -06:00
VMMethod.java update copyright years 2013-07-02 20:52:38 -06:00