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:26:54 +02:00
parent 11116da935
commit 1a870c9132
3 changed files with 4 additions and 4 deletions

View file

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

View file

@ -38,7 +38,7 @@ class _ProactorBasePipeTransport(transports._FlowControlMixin,
self._server.attach(self) self._server.attach(self)
self._loop.call_soon(self._protocol.connection_made, self) self._loop.call_soon(self._protocol.connection_made, self)
if waiter is not None: if waiter is not None:
self._loop.call_soon(waiter._set_result_unless_cancelled, None) waiter.set_result(None)
def _set_extra(self, sock): def _set_extra(self, sock):
self._extra['pipe'] = 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.add_reader(self._sock_fd, self._read_ready)
self._loop.call_soon(self._protocol.connection_made, self) self._loop.call_soon(self._protocol.connection_made, self)
if waiter is not None: if waiter is not None:
self._loop.call_soon(waiter._set_result_unless_cancelled, None) waiter.set_result(None)
def pause_reading(self): def pause_reading(self):
if self._closing: if self._closing: