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 eric.snow
Recipients eric.snow
Date 2019-03-29.19:26:20
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1553887580.94.0.470279627742.issue36475@roundup.psfhosted.org>
In-reply-to
Content
Daemon threads keep running until they finish or until finalization starts.  For the latter, there is a check right after the thread acquires the GIL which causes the thread to exit if runtime finalization has started. [1]  However, there are functions in the C-API that facilitate acquiring the GIL, but do not cause the thread to exit during finalization:

  PyEval_AcquireLock()
  PyEval_AcquireThread()

Daemon threads that acquire the GIL through these can cause a deadlock during finalization.  (See issue #36469.)  They should probably be updated to match what PyEval_RestoreThread() does.


[1] see PyEval_RestoreThread() and the eval loop, in PyEval_EvalFrameEx()
History
Date User Action Args
2019-03-29 19:26:20eric.snowsetrecipients: + eric.snow
2019-03-29 19:26:20eric.snowsetmessageid: <1553887580.94.0.470279627742.issue36475@roundup.psfhosted.org>
2019-03-29 19:26:20eric.snowlinkissue36475 messages
2019-03-29 19:26:20eric.snowcreate