David Edelsohn <dje....@gmail.com> 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 <rep...@bugs.python.org>
<https://bugs.python.org/issue40092>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to