Mercurial > cpython-lru_cache-weakref
diff Python/ceval.c @ 48516:eefb98379644
Merger 65032 to py3k
| author | Jesse Noller <jnoller@gmail.com> |
|---|---|
| date | Thu, 17 Jul 2008 16:49:17 +0000 |
| parents | aca5b2e6a66f |
| children | d3d586019aff |
line wrap: on
line diff
--- a/Python/ceval.c Thu Jul 17 16:37:17 2008 +0000 +++ b/Python/ceval.c Thu Jul 17 16:49:17 2008 +0000 @@ -266,6 +266,9 @@ void PyEval_ReInitThreads(void) { + PyObject *threading, *result; + PyThreadState *tstate; + if (!interpreter_lock) return; /*XXX Can't use PyThread_free_lock here because it does too @@ -275,6 +278,23 @@ interpreter_lock = PyThread_allocate_lock(); PyThread_acquire_lock(interpreter_lock, 1); main_thread = PyThread_get_thread_ident(); + + /* Update the threading module with the new state. + */ + tstate = PyThreadState_GET(); + threading = PyMapping_GetItemString(tstate->interp->modules, + "threading"); + if (threading == NULL) { + /* threading not imported */ + PyErr_Clear(); + return; + } + result = PyObject_CallMethod(threading, "_after_fork", NULL); + if (result == NULL) + PyErr_WriteUnraisable(threading); + else + Py_DECREF(result); + Py_DECREF(threading); } #endif
