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
__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
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
constants.py gh-95649: Document that asyncio contains uvloop code (#107536) 2024-01-12 22:21:13 +00:00
coroutines.py
events.py gh-113538: Add asycio.Server.{close,abort}_clients (redo) (#116784) 2024-03-18 13:15:53 -07:00
exceptions.py
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
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
queues.py gh-96471: Correct documentation for asyncio queue shutdown (#117621) 2024-04-08 14:50:54 +00:00
runners.py
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
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
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
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