STINNER Victor <victor.stin...@gmail.com> added the comment: > Why not *always* call PyEval_InitThreads() at interpreter initialization? > Are there any downsides?
The code is quite old: commit 1984f1e1c6306d4e8073c28d2395638f80ea509b Author: Guido van Rossum <gu...@python.org> Date: Tue Aug 4 12:41:02 1992 +0000 * Makefile adapted to changes below. * split pythonmain.c in two: most stuff goes to pythonrun.c, in the library. * new optional built-in threadmodule.c, build upon Sjoerd's thread.{c,h}. * new module from Sjoerd: mmmodule.c (dynamically loaded). * new module from Sjoerd: sv (svgen.py, svmodule.c.proto). * new files thread.{c,h} (from Sjoerd). * new xxmodule.c (example only). * myselect.h: bzero -> memset * select.c: bzero -> memset; removed global variable (...) +void +init_save_thread() +{ +#ifdef USE_THREAD + if (interpreter_lock) + fatal("2nd call to init_save_thread"); + interpreter_lock = allocate_lock(); + acquire_lock(interpreter_lock, 1); +#endif +} +#endif Current version of the code: void PyEval_InitThreads(void) { if (gil_created()) return; create_gil(); take_gil(PyThreadState_GET()); _PyRuntime.ceval.pending.main_thread = PyThread_get_thread_ident(); if (!_PyRuntime.ceval.pending.lock) _PyRuntime.ceval.pending.lock = PyThread_allocate_lock(); } ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue20891> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com