From 0e34dc37379e3c42b19c30410e190966e65f4dad Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sun, 12 Oct 2014 09:52:11 +0200 Subject: asyncio: enhance protocol representation Add "closed" or "closing" to repr() of selector and proactor transports --- Lib/asyncio/proactor_events.py | 8 +++++++- Lib/asyncio/selector_events.py | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Lib/asyncio/proactor_events.py b/Lib/asyncio/proactor_events.py index 0ad0656..7132300 100644 --- a/Lib/asyncio/proactor_events.py +++ b/Lib/asyncio/proactor_events.py @@ -42,7 +42,13 @@ class _ProactorBasePipeTransport(transports._FlowControlMixin, self._loop.call_soon(waiter._set_result_unless_cancelled, None) def __repr__(self): - info = [self.__class__.__name__, 'fd=%s' % self._sock.fileno()] + info = [self.__class__.__name__] + fd = self._sock.fileno() + if fd < 0: + info.append('closed') + elif self._closing: + info.append('closing') + info.append('fd=%s' % fd) if self._read_fut is not None: info.append('read=%s' % self._read_fut) if self._write_fut is not None: diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py index 33de92e..a55eff7 100644 --- a/Lib/asyncio/selector_events.py +++ b/Lib/asyncio/selector_events.py @@ -467,7 +467,12 @@ class _SelectorTransport(transports._FlowControlMixin, self._server._attach() def __repr__(self): - info = [self.__class__.__name__, 'fd=%s' % self._sock_fd] + info = [self.__class__.__name__] + if self._sock is None: + info.append('closed') + elif self._closing: + info.append('closing') + info.append('fd=%s' % self._sock_fd) # test if the transport was closed if self._loop is not None: polling = _test_selector_event(self._loop._selector, -- cgit v0.12