summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorAntoine Pitrou <pitrou@free.fr>2017-12-20 18:06:20 (GMT)
committerGitHub <noreply@github.com>2017-12-20 18:06:20 (GMT)
commita7a751dd7b08a5bb6cb399c1b2a6ca7b24aba51d (patch)
treec8b943cd021198fac17a544c579830628453f6d9 /Doc
parent6b91a5972107ec8dd5334f4f2005626baa2b8847 (diff)
downloadcpython-a7a751dd7b08a5bb6cb399c1b2a6ca7b24aba51d.zip
cpython-a7a751dd7b08a5bb6cb399c1b2a6ca7b24aba51d.tar.gz
cpython-a7a751dd7b08a5bb6cb399c1b2a6ca7b24aba51d.tar.bz2
bpo-32306: Clarify c.f.Executor.map() documentation (#4947)
The built-in map() function collects function arguments lazily, but concurrent.futures.Executor.map() does so eagerly.
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/concurrent.futures.rst34
1 files changed, 21 insertions, 13 deletions
diff --git a/Doc/library/concurrent.futures.rst b/Doc/library/concurrent.futures.rst
index d4b698e..707d24d 100644
--- a/Doc/library/concurrent.futures.rst
+++ b/Doc/library/concurrent.futures.rst
@@ -40,21 +40,29 @@ Executor Objects
.. method:: map(func, *iterables, timeout=None, chunksize=1)
- Equivalent to :func:`map(func, *iterables) <map>` except *func* is executed
- asynchronously and several calls to *func* may be made concurrently. The
- returned iterator raises a :exc:`concurrent.futures.TimeoutError` if
- :meth:`~iterator.__next__` is called and the result isn't available
+ Similar to :func:`map(func, *iterables) <map>` except:
+
+ * the *iterables* are collected immediately rather than lazily;
+
+ * *func* is executed asynchronously and several calls to
+ *func* may be made concurrently.
+
+ The returned iterator raises a :exc:`concurrent.futures.TimeoutError`
+ if :meth:`~iterator.__next__` is called and the result isn't available
after *timeout* seconds from the original call to :meth:`Executor.map`.
*timeout* can be an int or a float. If *timeout* is not specified or
- ``None``, there is no limit to the wait time. If a call raises an
- exception, then that exception will be raised when its value is
- retrieved from the iterator. When using :class:`ProcessPoolExecutor`, this
- method chops *iterables* into a number of chunks which it submits to the
- pool as separate tasks. The (approximate) size of these chunks can be
- specified by setting *chunksize* to a positive integer. For very long
- iterables, using a large value for *chunksize* can significantly improve
- performance compared to the default size of 1. With :class:`ThreadPoolExecutor`,
- *chunksize* has no effect.
+ ``None``, there is no limit to the wait time.
+
+ If a *func* call raises an exception, then that exception will be
+ raised when its value is retrieved from the iterator.
+
+ When using :class:`ProcessPoolExecutor`, this method chops *iterables*
+ into a number of chunks which it submits to the pool as separate
+ tasks. The (approximate) size of these chunks can be specified by
+ setting *chunksize* to a positive integer. For very long iterables,
+ using a large value for *chunksize* can significantly improve
+ performance compared to the default size of 1. With
+ :class:`ThreadPoolExecutor`, *chunksize* has no effect.
.. versionchanged:: 3.5
Added the *chunksize* argument.