Message308646
Hi David,
> what happens behind the scenes is that the call blocks until all results are computed and only then starts yielding them.
The current implementation of the Executor.map() generator is:
def result_iterator():
try:
# reverse to keep finishing order
fs.reverse()
while fs:
# Careful not to keep a reference to the popped future
if timeout is None:
yield fs.pop().result()
else:
yield fs.pop().result(end_time - time.time())
finally:
for future in fs:
future.cancel()
So it seems to me that results are yielded as soon as they arrive (provided they arrive in the right order). |
|
| Date |
User |
Action |
Args |
| 2017-12-19 14:37:22 | pitrou | set | recipients:
+ pitrou, docs@python, dlukes |
| 2017-12-19 14:37:22 | pitrou | set | messageid: <1513694242.4.0.213398074469.issue32306@psf.upfronthosting.co.za> |
| 2017-12-19 14:37:21 | pitrou | link | issue32306 messages |
| 2017-12-19 14:37:21 | pitrou | create | |
|