diff options
author | Pablo Galindo <Pablogsal@gmail.com> | 2020-04-11 03:05:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-11 03:05:37 +0100 |
commit | 7ec43a73092d43c6c95e7dd2669f49d54b57966f (patch) | |
tree | 69d06ecfd1e7f33fa4ded71e5af501b1d032f52a /Doc/library/multiprocessing.rst | |
parent | f13072b8a89a922285737988b086beb4b06c6648 (diff) | |
download | cpython-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.rst | 13 |
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* |