diff options
author | Guido van Rossum <guido@python.org> | 2013-01-21 08:32:21 -0800 |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2013-01-21 08:32:21 -0800 |
commit | fb25d9012471e095db73bb5d19c39dc17a42669d (patch) | |
tree | f363b7135ad7066e2fc1a060ae484c3e27569921 | |
parent | 7a445d2aa32a7b28c2e5fe7ff7a65b93b5355f91 (diff) | |
download | trollius-git-fb25d9012471e095db73bb5d19c39dc17a42669d.tar.gz |
Cancel handlers in remove_reader() etc.
-rw-r--r-- | tulip/unix_events.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tulip/unix_events.py b/tulip/unix_events.py index d23c016..bf58d22 100644 --- a/tulip/unix_events.py +++ b/tulip/unix_events.py @@ -412,6 +412,8 @@ class UnixEventLoop(events.EventLoop): self._selector.unregister(fd) else: self._selector.modify(fd, mask, (None, writer, connector)) + if reader is not None: + reader.cancel() return True def add_writer(self, fd, callback, *args): @@ -442,6 +444,10 @@ class UnixEventLoop(events.EventLoop): self._selector.unregister(fd) else: self._selector.modify(fd, mask, (reader, None, None)) + if writer is not None: + writer.cancel() + if connector is not None: + connector.cancel() return True # NOTE: add_connector() and add_writer() are mutually exclusive. @@ -481,6 +487,10 @@ class UnixEventLoop(events.EventLoop): self._selector.unregister(fd) else: self._selector.modify(fd, mask, (reader, None, None)) + if writer is not None: + writer.cancel() + if connector is not None: + connector.cancel() return True def sock_recv(self, sock, n): |