This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2016年01月13日 19:47 by cberger, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Messages (2) | |||
|---|---|---|---|
| msg258164 - (view) | Author: Christian Berger (cberger) | Date: 2016年01月13日 19:47 | |
I've been messing with PyGILState_... handling for my embedded python interpreter and came across this issue:
code in PyGILState_Release:
PyThreadState *tcur = (PyThreadState *)PyThread_get_key_value(
autoTLSkey);
if (tcur == NULL)
Py_FatalError("auto-releasing thread-state, "
"but no thread-state for this thread");
The Py_FatalError() call will then invoke PyErr_Fetch() which won't check if PyThreadState_GET() returns a valid ptr (!= NULL):
PyErr_Fetch(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
{
PyThreadState *tstate = PyThreadState_GET();
*p_type = tstate->curexc_type;
|
|||
| msg261819 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2016年03月15日 16:31 | |
Good news: it looks like I fixed the Py_FatalError() bug in the issue #26558. Py_FatalError() can again be called with the GIL released. The bug was introduced in Python 3.0. Since your issue is a bug in your code and that Py_FatalError() was fixed, I close the issue. Thanks for your bug report. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:26 | admin | set | github: 70290 |
| 2016年03月15日 16:31:27 | vstinner | set | status: open -> closed versions: + Python 3.6 nosy: + vstinner messages: + msg261819 resolution: fixed |
| 2016年01月14日 22:28:36 | SilentGhost | set | nosy:
+ benjamin.peterson |
| 2016年01月13日 19:47:51 | cberger | create | |