mirror of
https://github.com/python/cpython.git
synced 2025-11-03 03:22:27 +00:00
gh-105912: document gotcha with using os.fork on macOS (#112871)
* gh-105912: document gotcha with using os.fork on macOS Using ``fork(2)`` on macOS when also using higher-level system APIs in the parent proces can crash on macOS because those system APIs are not written to handle this usage pattern. There's nothing we can do about this other than documenting the problem. Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
This commit is contained in:
parent
a723a13bf1
commit
22511f77c2
3 changed files with 21 additions and 0 deletions
|
|
@ -4383,6 +4383,11 @@ written in Python, such as a mail server's external command delivery program.
|
|||
If you use TLS sockets in an application calling ``fork()``, see
|
||||
the warning in the :mod:`ssl` documentation.
|
||||
|
||||
.. warning::
|
||||
|
||||
On macOS the use of this function is unsafe when mixed with using
|
||||
higher-level system APIs, and that includes using :mod:`urllib.request`.
|
||||
|
||||
.. versionchanged:: 3.8
|
||||
Calling ``fork()`` in a subinterpreter is no longer supported
|
||||
(:exc:`RuntimeError` is raised).
|
||||
|
|
@ -4422,6 +4427,11 @@ written in Python, such as a mail server's external command delivery program.
|
|||
|
||||
.. audit-event:: os.forkpty "" os.forkpty
|
||||
|
||||
.. warning::
|
||||
|
||||
On macOS the use of this function is unsafe when mixed with using
|
||||
higher-level system APIs, and that includes using :mod:`urllib.request`.
|
||||
|
||||
.. versionchanged:: 3.12
|
||||
If Python is able to detect that your process has multiple
|
||||
threads, this now raises a :exc:`DeprecationWarning`. See the
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ The :mod:`pty` module defines the following functions:
|
|||
file descriptor connected to the child's controlling terminal (and also to the
|
||||
child's standard input and output).
|
||||
|
||||
.. warning:: On macOS the use of this function is unsafe when mixed with using
|
||||
higher-level system APIs, and that includes using :mod:`urllib.request`.
|
||||
|
||||
|
||||
.. function:: openpty()
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,14 @@ authentication, redirections, cookies and more.
|
|||
The `Requests package <https://requests.readthedocs.io/en/master/>`_
|
||||
is recommended for a higher-level HTTP client interface.
|
||||
|
||||
.. warning::
|
||||
|
||||
On macOS it is unsafe to use this module in programs using
|
||||
:func:`os.fork` because the :func:`getproxies` implementation for
|
||||
macOS uses a higher-level system API. Set the environment variable
|
||||
``no_proxy`` to ``*`` to avoid this problem
|
||||
(e.g. ``os.environ["no_proxy"] = "*"``).
|
||||
|
||||
.. include:: ../includes/wasm-notavail.rst
|
||||
|
||||
The :mod:`urllib.request` module defines the following functions:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue