Issue #23456: Add missing @coroutine decorators in asyncio
diff --git a/Lib/asyncio/base_subprocess.py b/Lib/asyncio/base_subprocess.py
index d18f3e8..c1477b8 100644
--- a/Lib/asyncio/base_subprocess.py
+++ b/Lib/asyncio/base_subprocess.py
@@ -211,6 +211,7 @@
                 waiter.set_result(returncode)
         self._exit_waiters = None
 
+    @coroutine
     def _wait(self):
         """Wait until the process exit and return the process return code.
 
diff --git a/Lib/asyncio/locks.py b/Lib/asyncio/locks.py
index b943e9d..41a68c6 100644
--- a/Lib/asyncio/locks.py
+++ b/Lib/asyncio/locks.py
@@ -162,6 +162,7 @@
         # always raises; that's how the with-statement works.
         pass
 
+    @coroutine
     def __iter__(self):
         # This is not a coroutine.  It is meant to enable the idiom:
         #
@@ -362,6 +363,7 @@
     def __exit__(self, *args):
         pass
 
+    @coroutine
     def __iter__(self):
         # See comment in Lock.__iter__().
         yield from self.acquire()
@@ -446,6 +448,7 @@
     def __exit__(self, *args):
         pass
 
+    @coroutine
     def __iter__(self):
         # See comment in Lock.__iter__().
         yield from self.acquire()
diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py
index 7ff16a4..64ff3d2 100644
--- a/Lib/asyncio/streams.py
+++ b/Lib/asyncio/streams.py
@@ -378,6 +378,7 @@
             else:
                 self._paused = True
 
+    @coroutine
     def _wait_for_data(self, func_name):
         """Wait until feed_data() or feed_eof() is called."""
         # StreamReader uses a future to link the protocol feed_data() method