Fixed threadlocal

master
Robinson 2023-08-05 11:58:56 -06:00
parent 4101700d96
commit b8ca4ee696
No known key found for this signature in database
GPG Key ID: 8E7DB78588BD6F5C
1 changed files with 4 additions and 5 deletions

View File

@ -46,18 +46,20 @@ public class ClassTree<KEY> {
}
};
private static AtomicInteger valueId = new AtomicInteger(Integer.MIN_VALUE);
private static
final FastThreadLocal<MultiClass> valueCache = new FastThreadLocal<MultiClass>() {
@Override
public
MultiClass initialValue() {
return null;
return new MultiClass(valueId.getAndIncrement());
}
};
private AtomicReference<Object> children = new AtomicReference<Object>();
private AtomicReference<MultiClass> value = new AtomicReference<MultiClass>();
private AtomicInteger valueId = new AtomicInteger(Integer.MIN_VALUE);
@SuppressWarnings("unchecked")
@ -182,9 +184,6 @@ public class ClassTree<KEY> {
MultiClass value = leaf.value.get();
if (value == null) {
MultiClass multiClass = valueCache.get();
if (multiClass == null) {
multiClass = new MultiClass(valueId.getAndIncrement());
}
final boolean success = leaf.value.compareAndSet(null, multiClass);
if (success) {