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.

Author David.Edelsohn
Recipients David.Edelsohn, Michael.Felt, shihai1991, vstinner
Date 2021-05-23.20:31:08
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1621801868.83.0.0234665391914.issue40092@roundup.psfhosted.org>
In-reply-to
Content
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?
History
Date User Action Args
2021-05-23 20:31:08David.Edelsohnsetrecipients: + David.Edelsohn, vstinner, Michael.Felt, shihai1991
2021-05-23 20:31:08David.Edelsohnsetmessageid: <1621801868.83.0.0234665391914.issue40092@roundup.psfhosted.org>
2021-05-23 20:31:08David.Edelsohnlinkissue40092 messages
2021-05-23 20:31:08David.Edelsohncreate