Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 25 additions & 9 deletions Doc/library/multiprocessing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1058,24 +1058,40 @@ Miscellaneous
Return a context object which has the same attributes as the
:mod:`multiprocessing` module.

If *method* is ``None`` then the default context is returned.
Otherwise *method* should be ``'fork'``, ``'spawn'``,
``'forkserver'``. :exc:`ValueError` is raised if the specified
start method is not available. See :ref:`multiprocessing-start-methods`.
If *method* is ``None``, the default context is returned. Be aware that
calling this function with *method=None* sets the default context globally,
potentially affecting future usage of :func:`set_start_method`. To change
the method later, it is recommended to explicitly specify a method other
than ``None`` when calling this function. Otherwise, it may lead to
unexpected behavior.

*method* should be one of the following: ``'fork'``, ``'spawn'``, or
``'forkserver'``. A :exc:`ValueError` is raised if the specified start
method is unavailable. See :ref:`multiprocessing-start-methods`.

.. versionadded:: 3.4

.. function:: get_start_method(allow_none=False)

Return the name of start method used for starting processes.

If the start method has not been fixed and *allow_none* is false,
then the start method is fixed to the default and the name is
returned. If the start method has not been fixed and *allow_none*
is true then ``None`` is returned.
If the start method has not been explicitly set
(e.g., using :func:`set_start_method`) and *allow_none* is false, then the
start method is fixed to the default, and the name of the default method
is returned. If the start method has not been explicitly set and
*allow_none* is true, then ``None`` is returned, indicating that
the method has not been explicitly set.

The return value can be ``'fork'``, ``'spawn'``, ``'forkserver'``
or ``None``. See :ref:`multiprocessing-start-methods`.
or ``None``.

Exercise caution when changing the start method using
``multiprocessing.set_start_method`` after using
``multiprocessing.get_start_method`` with *allow_none* set to
``False``, as it may raise a ``RuntimeError``.

See :ref:`multiprocessing-start-methods` for more information
on multiprocessing start methods and their implications.

.. versionchanged:: 3.8

Expand Down
Loading