Commit 79fd9626 authored by Victor Stinner's avatar Victor Stinner

asyncio: Fix _SelectorTransport.__repr__() if the event loop is closed

parent 0b4e355b
...@@ -535,7 +535,7 @@ class _SelectorTransport(transports._FlowControlMixin, ...@@ -535,7 +535,7 @@ class _SelectorTransport(transports._FlowControlMixin,
info.append('closing') info.append('closing')
info.append('fd=%s' % self._sock_fd) info.append('fd=%s' % self._sock_fd)
# test if the transport was closed # test if the transport was closed
if self._loop is not None: if self._loop is not None and not self._loop.is_closed():
polling = _test_selector_event(self._loop._selector, polling = _test_selector_event(self._loop._selector,
self._sock_fd, selectors.EVENT_READ) self._sock_fd, selectors.EVENT_READ)
if polling: if polling:
......
...@@ -62,6 +62,11 @@ class BaseSelectorEventLoopTests(test_utils.TestCase): ...@@ -62,6 +62,11 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
self.loop.add_reader._is_coroutine = False self.loop.add_reader._is_coroutine = False
transport = self.loop._make_socket_transport(m, asyncio.Protocol()) transport = self.loop._make_socket_transport(m, asyncio.Protocol())
self.assertIsInstance(transport, _SelectorSocketTransport) self.assertIsInstance(transport, _SelectorSocketTransport)
# Calling repr() must not fail when the event loop is closed
self.loop.close()
repr(transport)
close_transport(transport) close_transport(transport)
@unittest.skipIf(ssl is None, 'No ssl module') @unittest.skipIf(ssl is None, 'No ssl module')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment