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,10 +166,12 @@ class ConcurrentExecutorGenResults(_ConcurrentExecutor):
|
|||||||
self._condition.wait()
|
self._condition.wait()
|
||||||
while self._results_queue and self._results_queue[0][0] == self._current:
|
while self._results_queue and self._results_queue[0][0] == self._current:
|
||||||
_, res = heappop(self._results_queue)
|
_, res = heappop(self._results_queue)
|
||||||
|
try:
|
||||||
self._condition.release()
|
self._condition.release()
|
||||||
if self._fail_fast and not res[0]:
|
if self._fail_fast and not res[0]:
|
||||||
self._raise(res[1])
|
self._raise(res[1])
|
||||||
yield res
|
yield res
|
||||||
|
finally:
|
||||||
self._condition.acquire()
|
self._condition.acquire()
|
||||||
self._current += 1
|
self._current += 1
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user