package org.python.core;
class ThreadStateMapping {
private static final ThreadLocal<ThreadState> cachedThreadState = new ThreadLocal<ThreadState>();
public ThreadState getThreadState(PySystemState newSystemState) {
ThreadState ts = cachedThreadState.get();
if (ts != null) {
return ts;
}
Thread t = Thread.currentThread();
if (newSystemState == null) {
Py.writeDebug("threadstate", "no current system state");
if (Py.defaultSystemState == null) {
PySystemState.initialize();
}
newSystemState = Py.defaultSystemState;
}
ts = new ThreadState(t, newSystemState);
cachedThreadState.set(ts);
return ts;
}
}