asyncio: Fix unix pipe transport 'repr' methods

Patch by Vincent Michel.
See also https://github.com/python/asyncio/pull/326
This commit is contained in:
Yury Selivanov 2016-05-13 16:04:43 -04:00
parent 32dae3d50f
commit 5dc093336f
2 changed files with 45 additions and 4 deletions

View file

@ -329,14 +329,17 @@ class _UnixReadPipeTransport(transports.ReadTransport):
elif self._closing:
info.append('closing')
info.append('fd=%s' % self._fileno)
if self._pipe is not None:
selector = getattr(self._loop, '_selector', None)
if self._pipe is not None and selector is not None:
polling = selector_events._test_selector_event(
self._loop._selector,
selector,
self._fileno, selectors.EVENT_READ)
if polling:
info.append('polling')
else:
info.append('idle')
elif self._pipe is not None:
info.append('open')
else:
info.append('closed')
return '<%s>' % ' '.join(info)
@ -453,9 +456,10 @@ class _UnixWritePipeTransport(transports._FlowControlMixin,
elif self._closing:
info.append('closing')
info.append('fd=%s' % self._fileno)
if self._pipe is not None:
selector = getattr(self._loop, '_selector', None)
if self._pipe is not None and selector is not None:
polling = selector_events._test_selector_event(
self._loop._selector,
selector,
self._fileno, selectors.EVENT_WRITE)
if polling:
info.append('polling')
@ -464,6 +468,8 @@ class _UnixWritePipeTransport(transports._FlowControlMixin,
bufsize = self.get_write_buffer_size()
info.append('bufsize=%s' % bufsize)
elif self._pipe is not None:
info.append('open')
else:
info.append('closed')
return '<%s>' % ' '.join(info)