Antoine Pitrou <pit...@free.fr> added the comment: 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). ---------- assignee: -> docs@python components: +Documentation nosy: +docs@python, pitrou type: enhancement -> behavior versions: +Python 3.6, Python 3.7 -Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue32306> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com