]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #19299: fix refleak test failures in test_asyncio
authorAntoine Pitrou <solipsis@pitrou.net>
Sat, 19 Oct 2013 22:54:10 +0000 (00:54 +0200)
committerAntoine Pitrou <solipsis@pitrou.net>
Sat, 19 Oct 2013 22:54:10 +0000 (00:54 +0200)
Lib/asyncio/base_events.py
Lib/asyncio/proactor_events.py
Lib/asyncio/selector_events.py

index 5f1bff71f2dfbd4980fb959c8eaefd5f967b43ea..2e00713741426aea4ab56b0883fb3e9953f1757d 100644 (file)
@@ -185,6 +185,14 @@ class BaseEventLoop(events.AbstractEventLoop):
         """
         self.call_soon(_raise_stop_error)
 
+    def close(self):
+        self._ready.clear()
+        self._scheduled.clear()
+        executor = self._default_executor
+        if executor is not None:
+            self._default_executor = None
+            executor.shutdown(wait=False)
+
     def is_running(self):
         """Returns running status of event loop."""
         return self._running
index 665569f03a7e48b0f4fcf771537f46766fde44dd..cb8625d9429712453c348c7b3912e0cb08f5b1f3 100644 (file)
@@ -276,6 +276,7 @@ class BaseProactorEventLoop(base_events.BaseEventLoop):
             self._proactor.close()
             self._proactor = None
             self._selector = None
+            super().close()
 
     def sock_recv(self, sock, n):
         return self._proactor.recv(sock, n)
index dee23064b7b6aa8b7ca26dc8a4a3aa280579aff7..6cffdd4e35403c50366c98ad01f5a6b4e9ba0db1 100644 (file)
@@ -56,6 +56,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
             self._close_self_pipe()
             self._selector.close()
             self._selector = None
+            super().close()
 
     def _socketpair(self):
         raise NotImplementedError