mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
Patch 1413181, by Gabriel Becedillas.
PyThreadState_Delete(): if the auto-GIL-state machinery knows about the thread state, forget it (since the thread state is being deleted, continuing to remember it can't help, but can hurt if another thread happens to get created with the same thread id). I'll backport to 2.4 next.
This commit is contained in:
parent
8622e93eab
commit
f4e6928c4d
2 changed files with 10 additions and 0 deletions
|
@ -230,6 +230,12 @@ Core and builtins
|
||||||
unicode instance if the argument is not an instance of basestring and
|
unicode instance if the argument is not an instance of basestring and
|
||||||
calling __str__ on the argument returns a unicode instance.
|
calling __str__ on the argument returns a unicode instance.
|
||||||
|
|
||||||
|
- Patch #1413181: changed ``PyThreadState_Delete()`` to forget about the
|
||||||
|
current thread state when the auto-GIL-state machinery knows about
|
||||||
|
it (since the thread state is being deleted, continuing to remember it
|
||||||
|
can't help, but can hurt if another thread happens to get created with
|
||||||
|
the same thread id).
|
||||||
|
|
||||||
Extension Modules
|
Extension Modules
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
|
@ -262,6 +262,10 @@ PyThreadState_Delete(PyThreadState *tstate)
|
||||||
if (tstate == _PyThreadState_Current)
|
if (tstate == _PyThreadState_Current)
|
||||||
Py_FatalError("PyThreadState_Delete: tstate is still current");
|
Py_FatalError("PyThreadState_Delete: tstate is still current");
|
||||||
tstate_delete_common(tstate);
|
tstate_delete_common(tstate);
|
||||||
|
#ifdef WITH_THREAD
|
||||||
|
if (autoTLSkey && PyThread_get_key_value(autoTLSkey) == tstate)
|
||||||
|
PyThread_delete_key_value(autoTLSkey);
|
||||||
|
#endif /* WITH_THREAD */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue