aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Doc/library/multiprocessing.rst
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2020-04-11 03:05:37 +0100
committerGitHub <noreply@github.com>2020-04-11 03:05:37 +0100
commit7ec43a73092d43c6c95e7dd2669f49d54b57966f (patch)
tree69d06ecfd1e7f33fa4ded71e5af501b1d032f52a /Doc/library/multiprocessing.rst
parentf13072b8a89a922285737988b086beb4b06c6648 (diff)
downloadcpython-7ec43a73092d43c6c95e7dd2669f49d54b57966f.tar.gz
cpython-7ec43a73092d43c6c95e7dd2669f49d54b57966f.zip
bpo-38501: Add a warning section to multiprocessing.Pool docs about resource managing (GH-19466)
Diffstat (limited to 'Doc/library/multiprocessing.rst')
-rw-r--r--Doc/library/multiprocessing.rst13
1 files changed, 12 insertions, 1 deletions
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index 492f94c3001..ec9521f1fb4 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -439,7 +439,8 @@ process which created it.
>>> def f(x):
... return x*x
...
- >>> p.map(f, [1,2,3])
+ >>> with p:
+ ... p.map(f, [1,2,3])
Process PoolWorker-1:
Process PoolWorker-2:
Process PoolWorker-3:
@@ -2127,6 +2128,16 @@ with the :class:`Pool` class.
Note that the methods of the pool object should only be called by
the process which created the pool.
+ .. warning::
+ :class:`multiprocessing.pool` objects have internal resources that need to be
+ properly managed (like any other resource) by using the pool as a context manager
+ or by calling :meth:`close` and :meth:`terminate` manually. Failure to do this
+ can lead to the process hanging on finalization.
+
+ Note that is **not correct** to rely on the garbage colletor to destroy the pool
+ as CPython does not assure that the finalizer of the pool will be called
+ (see :meth:`object.__del__` for more information).
+
.. versionadded:: 3.2
*maxtasksperchild*