exec concurrent gen: reacquire lock no matter what
resolves a (non-impactful) RuntimeError emitted if a generator is collected without having been consumed
This commit is contained in:
@@ -166,11 +166,13 @@ class ConcurrentExecutorGenResults(_ConcurrentExecutor):
|
||||
self._condition.wait()
|
||||
while self._results_queue and self._results_queue[0][0] == self._current:
|
||||
_, res = heappop(self._results_queue)
|
||||
self._condition.release()
|
||||
if self._fail_fast and not res[0]:
|
||||
self._raise(res[1])
|
||||
yield res
|
||||
self._condition.acquire()
|
||||
try:
|
||||
self._condition.release()
|
||||
if self._fail_fast and not res[0]:
|
||||
self._raise(res[1])
|
||||
yield res
|
||||
finally:
|
||||
self._condition.acquire()
|
||||
self._current += 1
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user