cpython/Lib/asyncio
Miss Islington (bot) d481d4b767
[3.13] gh-87744: fix waitpid race while calling send_signal in asyncio (GH-121126) (#121194)
gh-87744: fix waitpid race while calling send_signal in asyncio (GH-121126)

asyncio earlier relied on subprocess module to send signals to the process, this has some drawbacks one being that subprocess module unnecessarily calls waitpid on child processes and hence it races with asyncio implementation which internally uses child watchers. To mitigate this, now asyncio sends signals directly to the process without going through the subprocess on non windows systems. On Windows it fallbacks to subprocess module handling but on windows there are no child watchers so this issue doesn't exists altogether.

(cherry picked from commit bd473aa598)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2024-07-01 05:11:47 +00:00
..
__init__.py gh-106075: add `asyncio.taskgroups.__all__` to `asyncio.__all__` (#106090) 2023-06-26 07:54:03 +00:00
__main__.py [3.13] gh-118894: Make asyncio REPL use pyrepl (GH-119433) (#119884) 2024-05-31 17:15:44 -04:00
base_events.py gh-113538: Add asycio.Server.{close,abort}_clients (redo) (#116784) 2024-03-18 13:15:53 -07:00
base_futures.py gh-84623: Remove unused imports in stdlib (#93773) 2022-06-13 16:28:41 +02:00
base_subprocess.py [3.13] gh-87744: fix waitpid race while calling send_signal in asyncio (GH-121126) (#121194) 2024-07-01 05:11:47 +00:00
base_tasks.py gh-97696: asyncio eager tasks factory (#102853) 2023-05-01 15:10:13 -06:00
constants.py gh-95649: Document that asyncio contains uvloop code (#107536) 2024-01-12 22:21:13 +00:00
coroutines.py GH-102748: remove legacy support for generator based coroutines from `asyncio.iscoroutine` (#102749) 2023-03-16 20:28:10 +05:30
events.py gh-113538: Add asycio.Server.{close,abort}_clients (redo) (#116784) 2024-03-18 13:15:53 -07:00
exceptions.py bpo-43352: Add a Barrier object in asyncio lib (GH-24903) 2022-03-26 00:01:21 +02:00
format_helpers.py gh-112997: Don't log arguments in asyncio unless debugging (#115667) 2024-02-27 17:39:08 -08:00
futures.py gh-117459: Keep the traceback in _convert_future_exc (#117460) 2024-04-03 20:13:32 -07:00
locks.py gh-112202: Ensure that condition.notify() succeeds even when racing with Task.cancel() (#112201) 2024-02-03 08:19:37 -08:00
log.py
mixins.py bpo-46796: Simplify handling of removed parameter "loop" in asyncio (GH-31431) 2022-02-21 13:25:52 +02:00
proactor_events.py [3.13] gh-113892: Add a extra check to `ProactorEventLoop.sock_connect` to ensure that the given socket is in non-blocking mode (GH-119519) (#119912) 2024-06-01 16:27:54 +00:00
protocols.py bpo-46741: Update `asyncio.protocols.BufferedProtocol` docstring (31327) 2022-02-15 18:39:28 +02:00
queues.py gh-96471: Correct documentation for asyncio queue shutdown (#117621) 2024-04-08 14:50:54 +00:00
runners.py GH-99388: add `loop_factory` parameter to `asyncio.run` (#99462) 2022-11-14 10:18:51 -08:00
selector_events.py gh-113538: Add asycio.Server.{close,abort}_clients (redo) (#116784) 2024-03-18 13:15:53 -07:00
sslproto.py gh-109534: fix reference leak when SSL handshake fails (#114074) 2024-01-31 16:42:17 -08:00
staggered.py [3.13] gh-119121: Fix and test `async.staggered.staggered_race` (GH-119173) (#119206) 2024-05-20 11:31:31 +00:00
streams.py gh-117722: Fix Stream.readuntil with non-bytes buffer objects (#117723) 2024-04-11 07:41:55 -07:00
subprocess.py gh-109709: Fix asyncio test_stdin_broken_pipe() (#109710) 2023-09-22 15:29:42 +02:00
taskgroups.py gh-116720: Fix corner cases of taskgroups (#117407) 2024-04-09 08:17:28 -07:00
tasks.py gh-116720: Fix corner cases of taskgroups (#117407) 2024-04-09 08:17:28 -07:00
threads.py Trivial typo in docstring 2021-07-31 06:36:10 +02:00
timeouts.py gh-96037: Always insert TimeoutError when exit an expired asyncio.timeout() block (GH-113819) 2024-01-10 12:50:31 +02:00
transports.py gh-113812: Allow DatagramTransport.sendto to send empty data (#115199) 2024-02-16 18:38:07 -08:00
trsock.py bpo-43232: Remove previously deprecated methods on TransportSocket (GH-24538) 2021-06-30 09:19:09 +03:00
unix_events.py gh-111246: Remove listening Unix socket on close (#111483) 2023-11-08 08:10:10 -08:00
windows_events.py gh-91227: Ignore ERROR_PORT_UNREACHABLE in proactor recvfrom() (#32011) 2024-03-23 08:39:35 -07:00
windows_utils.py asyncio: __del__() keep reference to warnings.warn (GH-11491) 2019-01-10 11:24:40 +01:00