package org.python.modules._threading;
import org.python.core.ClassDictInit;
import org.python.core.Py;
import org.python.core.PyObject;
import com.google.common.collect.MapMaker;
import java.util.Map;
public class _threading implements ClassDictInit {
public static void classDictInit(PyObject dict) {
dict.__setitem__("__name__", Py.newString("_threading"));
dict.__setitem__("Lock", Lock.TYPE);
dict.__setitem__("RLock", Lock.TYPE);
dict.__setitem__("_Lock", Lock.TYPE);
dict.__setitem__("_RLock", Lock.TYPE);
dict.__setitem__("Condition", Condition.TYPE);
// dict.__setitem__("JavaThread", JavaThread.TYPE);
}
// internals to support threading.py, test_threading.py
public static Map<Long, PyObject> _threads = new MapMaker().weakValues().makeMap();
public static Map<Thread, PyObject> _jthread_to_pythread = new MapMaker().weakKeys().weakValues().makeMap();
public static Map<Long, PyObject> _active = _threads;
public static void _register_thread(Thread jthread, PyObject pythread) {
_threads.put(jthread.getId(), pythread);
_jthread_to_pythread.put(jthread, pythread);
}
public static void _unregister_thread(Thread jthread) {
_threads.remove(jthread.getId());
}
}