Message381433
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). |
|
Date |
User |
Action |
Args |
2020-11-19 15:02:33 | gsakkis | set | recipients:
+ gsakkis |
2020-11-19 15:02:33 | gsakkis | set | messageid: <1605798153.71.0.514077346974.issue42409@roundup.psfhosted.org> |
2020-11-19 15:02:33 | gsakkis | link | issue42409 messages |
2020-11-19 15:02:33 | gsakkis | create | |
|