Phil Connell <pconn...@gmail.com> added the comment:

The attached patch (wrap_threadstate.diff) is enough to stop the crash. It's a 
slightly dirty proof-of-concept, but equally could be the basis for a solution.

The main functional issue is that there's still a race on the Py_BLOCK_THREADS 
side: it's possible that the "is threadstate still valid" check can pass, but 
the interpreter is finalised while the daemon thread is trying to reacquire the 
GIL in PyEval_RestoreThread.

(The Py_UNBLOCK_THREADS side is non-racy as the GIL is held while the ts and 
wrapper updates are done).

----------
Added file: https://bugs.python.org/file48732/wrap_threadstate.diff

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33608>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to