Skip to content

Commit a307dad

Browse files
committed
concurrent.futures.Executor.map: break potential reference cycles caused by failed futures in the buffer
1 parent a123245 commit a307dad

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

Lib/concurrent/futures/_base.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,11 @@ def result_iterator():
642642
finally:
643643
for future in fs:
644644
future.cancel()
645+
# Break potential reference cycles: a failed future must
646+
# not be captured in its future._exception.__traceback__.
647+
future = None
648+
fs.clear()
649+
645650
return result_iterator()
646651

647652
def shutdown(self, wait=True, *, cancel_futures=False):

0 commit comments

Comments
 (0)