(Merge 3.4) asyncio: sync with Tulip

- Tulip issue #181: Faster create_connection(). Call directly
  waiter.set_result() in the constructor of _ProactorBasePipeTransport and
  _SelectorSocketTransport, instead of using of delaying the call with
  call_soon().
- Cleanup iscoroutine()
This commit is contained in:
Victor Stinner 2014-07-07 17:27:27 +02:00
commit f80c52bf68
3 changed files with 4 additions and 4 deletions

View File

@ -166,11 +166,11 @@ def iscoroutinefunction(func):
return getattr(func, '_is_coroutine', False)
_COROUTINE_TYPES = (CoroWrapper, types.GeneratorType)
_COROUTINE_TYPES = (types.GeneratorType, CoroWrapper)
def iscoroutine(obj):
"""Return True if obj is a coroutine object."""
return isinstance(obj, _COROUTINE_TYPES)
return isinstance(obj, _COROUTINE_TYPES)
def _format_coroutine(coro):

View File

@ -38,7 +38,7 @@ class _ProactorBasePipeTransport(transports._FlowControlMixin,
self._server.attach(self)
self._loop.call_soon(self._protocol.connection_made, self)
if waiter is not None:
self._loop.call_soon(waiter._set_result_unless_cancelled, None)
waiter.set_result(None)
def _set_extra(self, sock):
self._extra['pipe'] = sock

View File

@ -481,7 +481,7 @@ class _SelectorSocketTransport(_SelectorTransport):
self._loop.add_reader(self._sock_fd, self._read_ready)
self._loop.call_soon(self._protocol.connection_made, self)
if waiter is not None:
self._loop.call_soon(waiter._set_result_unless_cancelled, None)
waiter.set_result(None)
def pause_reading(self):
if self._closing: