(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:
commit
f80c52bf68
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue