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 vstinner
Recipients Arfrever, pitrou, serhiy.storchaka, vstinner
Date 2013-11-04.20:22:11
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
In-reply-to <>
2013/11/4 Antoine Pitrou <>:
> I'm afraid clearing thread states is a bit too brutal. What if some destructor relies on contents of the thread states (e.g. thread locals)?

When Py_Finalize() is called, only one Python thread hold the GIL.
After _Py_Finalizing=tstate is set, no other thread can hold the GIL.
If another Python tries to lock the GIL, it is "killed" by

Is that correct? If yes, in which thread would the destructor be
called? Would it read Python thread locals without holding the GIL?
Date User Action Args
2013-11-04 20:22:12vstinnersetrecipients: + vstinner, pitrou, Arfrever, serhiy.storchaka
2013-11-04 20:22:12vstinnerlinkissue19466 messages
2013-11-04 20:22:11vstinnercreate