From ac186221267a1e63de017fa96d61e181632a3a60 Mon Sep 17 00:00:00 2001 From: R David Murray Date: Fri, 20 Dec 2013 17:23:57 -0500 Subject: [PATCH] Add links to discussion of multiprocessing spawn/forkserver feature. --- Doc/library/multiprocessing.rst | 4 +++- Doc/whatsnew/3.4.rst | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index 2c44dc923a1..a8872e7016d 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -101,6 +101,8 @@ necessary, see :ref:`multiprocessing-programming`. Contexts and start methods ~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. _multiprocessing-start-methods: + Depending on the platform, :mod:`multiprocessing` supports three ways to start a process. These *start methods* are @@ -147,7 +149,7 @@ there may some "leaked" semaphores. (Unlinking the named semaphores is a serious matter since the system allows only a limited number, and they will not be automatically unlinked until the next reboot.) -To select the a start method you use the :func:`set_start_method` in +To select a start method you use the :func:`set_start_method` in the ``if __name__ == '__main__'`` clause of the main module. For example:: diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst index 81325604b31..7550b358003 100644 --- a/Doc/whatsnew/3.4.rst +++ b/Doc/whatsnew/3.4.rst @@ -114,8 +114,8 @@ Significantly Improved Library Modules: * New :mod:`pickle` :ref:`protocol 4 ` (:pep:`3154`) * :ref:`SHA-3 (Keccak) support ` for :mod:`hashlib`. * :ref:`TLSv1.1 and TLSv1.2 support ` for :mod:`ssl`. -* :mod:`multiprocessing` now has option to avoid using :func:`os.fork` - on Unix (:issue:`8713`). +* :mod:`multiprocessing` now has :ref:`an option to avoid using os.fork + on Unix ` (:issue:`8713`). * :mod:`email` has a new submodule, :mod:`~email.contentmanager`, and a new :mod:`~email.message.Message` subclass (:class:`~email.contentmanager.EmailMessage`) that simplify MIME handling. @@ -633,14 +633,17 @@ mmap objects can now be weakref'ed. multiprocessing --------------- -On Unix, two new *start methods* (``spawn`` and ``forkserver``) have been -added for starting processes using :mod:`multiprocessing`. These make -the mixing of processes with threads more robust, and the ``spawn`` -method matches the semantics that multiprocessing has always used on -Windows. (Contributed by Richard Oudkerk in :issue:`8713`). +.. _whatsnew-multiprocessing-no-fork: + +On Unix, two new :ref:`start methods ` +(``spawn`` and ``forkserver``) have been added for starting processes using +:mod:`multiprocessing`. These make the mixing of processes with threads more +robust, and the ``spawn`` method matches the semantics that multiprocessing has +always used on Windows. (Contributed by Richard Oudkerk in :issue:`8713`). Also, except when using the old *fork* start method, child processes -will no longer inherit unneeded handles/file descriptors from their parents. +will no longer inherit unneeded handles/file descriptors from their parents +(part of :issue:`8713`). :mod:`multiprocessing` now relies on :mod:`runpy` (which implements the ``-m`` switch) to initialise ``__main__`` appropriately in child processes