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 pitrou
Recipients eric.snow, pitrou, tomMoral, vstinner
Date 2020-02-28.18:11:44
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1582913504.7.0.910131386752.issue37266@roundup.psfhosted.org>
In-reply-to
Content
There will be a problem with `concurrent.futures.ProcessPoolExecutor`, which currently launches its management thread as a daemon thread.  The daemon thread itself is not problematic, because ProcessPoolExecutor uses an atexit hook to shutdown itself and therefore join the management thread.

It seems, however, that it's not easy to make the thread non-daemon, because atexit hooks are executed *after* non-daemon threads are joined.  That would lead to a deadlock: the interpreter would wait for the non-daemon management thread to exit, but the ProcessPoolExecutor would wait for the atexit hook to be called before telling the management thread to exit.

cc'ing Thomas Moreau, who's worker a lot on this.
History
Date User Action Args
2020-02-28 18:11:44pitrousetrecipients: + pitrou, vstinner, eric.snow, tomMoral
2020-02-28 18:11:44pitrousetmessageid: <1582913504.7.0.910131386752.issue37266@roundup.psfhosted.org>
2020-02-28 18:11:44pitroulinkissue37266 messages
2020-02-28 18:11:44pitroucreate