Issue #23242: asyncio.SubprocessStreamProtocol now closes the subprocess
transport at subprocess exit.

Clear also its reference to the transport.
diff --git a/Lib/asyncio/subprocess.py b/Lib/asyncio/subprocess.py
index a028339..c848a21 100644
--- a/Lib/asyncio/subprocess.py
+++ b/Lib/asyncio/subprocess.py
@@ -94,8 +94,11 @@
                 reader.set_exception(exc)
 
     def process_exited(self):
-        # wake up futures waiting for wait()
         returncode = self._transport.get_returncode()
+        self._transport.close()
+        self._transport = None
+
+        # wake up futures waiting for wait()
         while self._waiters:
             waiter = self._waiters.popleft()
             if not waiter.cancelled():