diff options
Diffstat (limited to 'Lib/asyncio/windows_events.py')
| -rw-r--r-- | Lib/asyncio/windows_events.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Lib/asyncio/windows_events.py b/Lib/asyncio/windows_events.py index 33ffaf9717..0f3e9f425f 100644 --- a/Lib/asyncio/windows_events.py +++ b/Lib/asyncio/windows_events.py @@ -315,7 +315,12 @@ class ProactorEventLoop(proactor_events.BaseProactorEventLoop): super().run_forever() finally: if self._self_reading_future is not None: + ov = self._self_reading_future._ov self._self_reading_future.cancel() + # self_reading_future was just cancelled so it will never be signalled + # Unregister it otherwise IocpProactor.close will wait for it forever + if ov is not None: + self._proactor._unregister(ov) self._self_reading_future = None async def create_pipe_connection(self, protocol_factory, address): |
