mirror of
https://github.com/corda/corda.git
synced 2025-06-13 12:48:18 +00:00
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.
This commit is contained in:
@ -97,12 +97,12 @@ public abstract class AbstractCollection<T> implements Collection<T> {
|
||||
}
|
||||
|
||||
public <S> S[] toArray(S[] array) {
|
||||
return Collections.toArray(this, array);
|
||||
return avian.Data.toArray(this, array);
|
||||
}
|
||||
|
||||
public abstract Iterator<T> iterator();
|
||||
|
||||
public String toString() {
|
||||
return Collections.toString(this);
|
||||
return avian.Data.toString(this);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user