mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
gh-91231: Add shutdown_timeout to multiprocessing BaseManager (#32112)
Add an optional keyword 'shutdown_timeout' parameter to the multiprocessing.BaseManager constructor. Kill the process if terminate() takes longer than the timeout. Multiprocessing tests pass test.support.SHORT_TIMEOUT to BaseManager.shutdown_timeout.
This commit is contained in:
parent
74070085da
commit
061a8bf77c
4 changed files with 49 additions and 20 deletions
|
@ -1676,7 +1676,7 @@ Manager processes will be shutdown as soon as they are garbage collected or
|
|||
their parent process exits. The manager classes are defined in the
|
||||
:mod:`multiprocessing.managers` module:
|
||||
|
||||
.. class:: BaseManager([address[, authkey]])
|
||||
.. class:: BaseManager(address=None, authkey=None, serializer='pickle', ctx=None, *, shutdown_timeout=1.0)
|
||||
|
||||
Create a BaseManager object.
|
||||
|
||||
|
@ -1691,6 +1691,20 @@ their parent process exits. The manager classes are defined in the
|
|||
*authkey* is ``None`` then ``current_process().authkey`` is used.
|
||||
Otherwise *authkey* is used and it must be a byte string.
|
||||
|
||||
*serializer* must be ``'pickle'`` (use :mod:`pickle` serialization) or
|
||||
``'xmlrpclib'`` (use :mod:`xmlrpc.client` serialization).
|
||||
|
||||
*ctx* is a context object, or ``None`` (use the current context). See the
|
||||
:func:`get_context` function.
|
||||
|
||||
*shutdown_timeout* is a timeout in seconds used to wait until the process
|
||||
used by the manager completes in the :meth:`shutdown` method. If the
|
||||
shutdown times out, the process is terminated. If terminating the process
|
||||
also times out, the process is killed.
|
||||
|
||||
.. versionchanged: 3.11
|
||||
Added the *shutdown_timeout* parameter.
|
||||
|
||||
.. method:: start([initializer[, initargs]])
|
||||
|
||||
Start a subprocess to start the manager. If *initializer* is not ``None``
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue