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: