Using ThreadLocal storage

This commit is contained in:
Frank 2022-01-28 17:45:26 +01:00
parent 755a0ad7ab
commit 4e008ab208

View file

@ -2,14 +2,9 @@ package ru.betterend.util;
import net.minecraft.core.BlockPos.MutableBlockPos;
import java.util.concurrent.ConcurrentHashMap;
public class GlobalState {
private static final ConcurrentHashMap<Thread, GlobalState> statePool = new ConcurrentHashMap<>();
public static void clearStatePool(){
statePool.clear();
}
public static GlobalState stateForThread() { return statePool.computeIfAbsent(Thread.currentThread(), t-> new GlobalState()); }
private static final ThreadLocal<GlobalState> STATE = ThreadLocal.withInitial(()->new GlobalState());
public static GlobalState stateForThread() { return STATE.get(); }
public final MutableBlockPos POS = new MutableBlockPos();
}