[Python-checkins] cpython (3.4): asyncio: sync with Tulip

victor.stinner python-checkins at python.org
Thu Dec 18 23:49:33 CET 2014


https://hg.python.org/cpython/rev/c2bc0da1d1f9
changeset: 93926:c2bc0da1d1f9
branch: 3.4
parent: 93924:7466abd0ea3d
user: Victor Stinner <victor.stinner at gmail.com>
date: Thu Dec 18 23:47:27 2014 +0100
summary:
 asyncio: sync with Tulip
* Fix a race condition in BaseSubprocessTransport._try_finish().
 If the process exited before the _post_init() method was called, scheduling
 the call to _call_connection_lost() with call_soon() is wrong:
 connection_made() must be called before connection_lost().
 Reuse the BaseSubprocessTransport._call() method to schedule the call to
 _call_connection_lost() to ensure that connection_made() and
 connection_lost() are called in the correct order.
* Add repr(PipeHandle)
* Fix typo
files:
 Lib/asyncio/base_subprocess.py | 2 +-
 Lib/asyncio/windows_events.py | 2 +-
 Lib/asyncio/windows_utils.py | 7 +++++++
 3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/Lib/asyncio/base_subprocess.py b/Lib/asyncio/base_subprocess.py
--- a/Lib/asyncio/base_subprocess.py
+++ b/Lib/asyncio/base_subprocess.py
@@ -153,7 +153,7 @@
 if all(p is not None and p.disconnected
 for p in self._pipes.values()):
 self._finished = True
- self._loop.call_soon(self._call_connection_lost, None)
+ self._call(self._call_connection_lost, None)
 
 def _call_connection_lost(self, exc):
 try:
diff --git a/Lib/asyncio/windows_events.py b/Lib/asyncio/windows_events.py
--- a/Lib/asyncio/windows_events.py
+++ b/Lib/asyncio/windows_events.py
@@ -402,7 +402,7 @@
 ov.getresult()
 return pipe
 
- # FIXME: Tulip issue 196: why to we neeed register=False?
+ # FIXME: Tulip issue 196: why do we need register=False?
 # See also the comment in the _register() method
 return self._register(ov, pipe, finish_accept_pipe,
 register=False)
diff --git a/Lib/asyncio/windows_utils.py b/Lib/asyncio/windows_utils.py
--- a/Lib/asyncio/windows_utils.py
+++ b/Lib/asyncio/windows_utils.py
@@ -134,6 +134,13 @@
 def __init__(self, handle):
 self._handle = handle
 
+ def __repr__(self):
+ if self._handle != -1:
+ handle = 'handle=%r' % self._handle
+ else:
+ handle = 'closed'
+ return '<%s %s>' % (self.__class__.__name__, handle)
+
 @property
 def handle(self):
 return self._handle
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /