summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-01-30 00:20:44 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2015-01-30 00:20:44 (GMT)
commitf2e43cbbd4b9325da638a6b45b52e766ca91b131 (patch)
tree3455f9db0834188f6f2450f4d2ddb3490e73734e /Lib/asyncio
parent1077dee4575ccc43c10515de50d7c100d6ce9455 (diff)
downloadcpython-f2e43cbbd4b9325da638a6b45b52e766ca91b131.zip
cpython-f2e43cbbd4b9325da638a6b45b52e766ca91b131.tar.gz
cpython-f2e43cbbd4b9325da638a6b45b52e766ca91b131.tar.bz2
Issue #23347, asyncio: send_signal(), terminate(), kill() don't check if the
transport was closed. The check broken a Tulip example and this limitation is arbitrary. Check if _proc is None should be enough. Enhance also close(): do nothing when called the second time.
Diffstat (limited to 'Lib/asyncio')
-rw-r--r--Lib/asyncio/base_subprocess.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/Lib/asyncio/base_subprocess.py b/Lib/asyncio/base_subprocess.py
index 70676ab..02b9e89 100644
--- a/Lib/asyncio/base_subprocess.py
+++ b/Lib/asyncio/base_subprocess.py
@@ -84,6 +84,8 @@ class BaseSubprocessTransport(transports.SubprocessTransport):
raise NotImplementedError
def close(self):
+ if self._closed:
+ return
self._closed = True
for proto in self._pipes.values():
@@ -100,8 +102,7 @@ class BaseSubprocessTransport(transports.SubprocessTransport):
except ProcessLookupError:
pass
- # Don't clear the _proc reference yet because _post_init() may
- # still run
+ # Don't clear the _proc reference yet: _post_init() may still run
# On Python 3.3 and older, objects with a destructor part of a reference
# cycle are never destroyed. It's not more the case on Python 3.4 thanks
@@ -125,8 +126,6 @@ class BaseSubprocessTransport(transports.SubprocessTransport):
return None
def _check_proc(self):
- if self._closed:
- raise ValueError("operation on closed transport")
if self._proc is None:
raise ProcessLookupError()