]> granicus.if.org Git - python/commitdiff
asyncio: sync with Tulip
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 7 Jul 2014 15:26:54 +0000 (17:26 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Mon, 7 Jul 2014 15:26:54 +0000 (17:26 +0200)
- 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()

Lib/asyncio/coroutines.py
Lib/asyncio/proactor_events.py
Lib/asyncio/selector_events.py

index 7654a0b9e0529bef4d687068f464005aaef49c3c..48730c225ab379b25e3f4f884d3f7515ffb3b763 100644 (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):
index a80876f366a40ab9b55f0600479880f85700144d..23545c9ee9d6626ca29f0693409014633de73eab 100644 (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
index 2a170340b9e90ed8c6f87c26893eceb74ad5051e..628efb750ca1a8e1832687b5ca061247e77ac411 100644 (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: