David Edelsohn <[email protected]> added the comment:
How could release_sentinel() be structured to not call PyThread_release_lock()?
This seems to be a situation where _PyThreadState_DeleteExcept() is deleting
all thread states. thread__set_sentinel() sets release_sentinel() as its
on_delete hook. The thread state is being deleted, release_sentinel() is called
and discovers that the lock is still held.
if (lock->locked) {
PyThread_release_lock(lock->lock_lock);
Do you suggest something like _PyThread_at_fork_reinit() and leak the memory?
To not release the lock in the thread of the child process?
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue40092>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com