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 gsakkis
Recipients gsakkis
Date 2020-11-19.15:02:33
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1605798153.71.0.514077346974.issue42409@roundup.psfhosted.org>
In-reply-to
Content
ThreadPoolExecutor.map() prevents interpreter exit if there is a reference to the generator it returns. In the attached script:

- `python threadpool_map.py run1` exits as soon as the exception is raised on the main thread. This is the desired behavior in our case.

- `python threadpool_map.py run2` keeps running until the thread worker processes all queued work items. The only difference from `run1` is that the result of `ThreadPoolExecutor.map()` is assigned to a variable.

- `python threadpool_map.py run3` has a `finally` block that shuts down the executor without waiting. Still the worker thread keeps running even after the shutdown.

Initially it seemed like https://bugs.python.org/issue36780 but there is no change in the behavior after commenting out the `atexit.register(_python_exit)` call (for the `run2` case at least).
History
Date User Action Args
2020-11-19 15:02:33gsakkissetrecipients: + gsakkis
2020-11-19 15:02:33gsakkissetmessageid: <1605798153.71.0.514077346974.issue42409@roundup.psfhosted.org>
2020-11-19 15:02:33gsakkislinkissue42409 messages
2020-11-19 15:02:33gsakkiscreate