Message394225
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? |
|
Date |
User |
Action |
Args |
2021-05-23 20:31:08 | David.Edelsohn | set | recipients:
+ David.Edelsohn, vstinner, Michael.Felt, shihai1991 |
2021-05-23 20:31:08 | David.Edelsohn | set | messageid: <1621801868.83.0.0234665391914.issue40092@roundup.psfhosted.org> |
2021-05-23 20:31:08 | David.Edelsohn | link | issue40092 messages |
2021-05-23 20:31:08 | David.Edelsohn | create | |
|