diff -r 430a2b541709 Lib/asyncio/base_subprocess.py --- a/Lib/asyncio/base_subprocess.py Thu Feb 12 22:49:18 2015 +0100 +++ b/Lib/asyncio/base_subprocess.py Thu Feb 12 22:54:30 2015 +0100 @@ -212,6 +212,7 @@ class BaseSubprocessTransport(transports waiter.set_result(returncode) self._exit_waiters = None + @coroutine def _wait(self): """Wait until the process exit and return the process return code. diff -r 430a2b541709 Lib/asyncio/locks.py --- a/Lib/asyncio/locks.py Thu Feb 12 22:49:18 2015 +0100 +++ b/Lib/asyncio/locks.py Thu Feb 12 22:54:30 2015 +0100 @@ -162,6 +162,7 @@ class Lock: # 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 @@ class Condition: def __exit__(self, *args): pass + @coroutine def __iter__(self): # See comment in Lock.__iter__(). yield from self.acquire() @@ -446,6 +448,7 @@ class Semaphore: def __exit__(self, *args): pass + @coroutine def __iter__(self): # See comment in Lock.__iter__(). yield from self.acquire() diff -r 430a2b541709 Lib/asyncio/streams.py --- a/Lib/asyncio/streams.py Thu Feb 12 22:49:18 2015 +0100 +++ b/Lib/asyncio/streams.py Thu Feb 12 22:54:30 2015 +0100 @@ -378,6 +378,7 @@ class StreamReader: 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