Issue #23140, asyncio: Fix cancellation of Process.wait(). Check the state of
the waiter future before setting its result.
diff --git a/Lib/asyncio/subprocess.py b/Lib/asyncio/subprocess.py
index f6d6a14..a8ad03c 100644
--- a/Lib/asyncio/subprocess.py
+++ b/Lib/asyncio/subprocess.py
@@ -96,7 +96,8 @@
returncode = self._transport.get_returncode()
while self._waiters:
waiter = self._waiters.popleft()
- waiter.set_result(returncode)
+ if not waiter.cancelled():
+ waiter.set_result(returncode)
class Process: