Skip to content

Commit 35e93a9

Browse files
author
Oleksandr Baltian
committed
clear Pool._taskqueue_buffersize_semaphores safely
1 parent bb85e0e commit 35e93a9

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

Lib/multiprocessing/pool.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -727,7 +727,7 @@ def _terminate_pool(cls, taskqueue, inqueue, outqueue, pool, change_notifier,
727727
task_handler._state = TERMINATE
728728
# Release all semaphores to wake up task_handler to stop.
729729
for job_id, sema in tuple(taskqueue_buffersize_semaphores.items()):
730-
taskqueue_buffersize_semaphores.pop(job_id)
730+
taskqueue_buffersize_semaphores.pop(job_id, None)
731731
sema.release()
732732

733733
util.debug('helping task handler/workers to finish')
@@ -920,8 +920,8 @@ def next(self, timeout=None):
920920

921921
def _stop_iterator(self):
922922
if self._pool is not None:
923-
# could be deleted in previous `.next()` calls
924-
self._pool._taskqueue_buffersize_semaphores.pop(self._job)
923+
# `self._pool` could be set to `None` in previous `.next()` calls
924+
self._pool._taskqueue_buffersize_semaphores.pop(self._job, None)
925925
self._pool = None
926926
raise StopIteration from None
927927

0 commit comments

Comments
 (0)