]> granicus.if.org Git - python/commitdiff
bpo-26133: Dont unsubscribe signals in UNIX even loop on interpreter shutdown (GH...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 21 Dec 2017 17:42:32 +0000 (09:42 -0800)
committerAndrew Svetlov <andrew.svetlov@gmail.com>
Thu, 21 Dec 2017 17:42:32 +0000 (19:42 +0200)
(cherry picked from commit 4a02543cf97e8cbf9293741379f977b85531e4c2)

Lib/asyncio/unix_events.py
Misc/NEWS.d/next/Library/2017-12-21-11-08-42.bpo-26133.mt81QV.rst [new file with mode: 0644]

index 5ea6c20c674a61949b6b6094a35c61e6f9b1c97f..dde1d3588f220451e14ae3599e1a638bedc0aa0e 100644 (file)
@@ -61,8 +61,14 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
 
     def close(self):
         super().close()
-        for sig in list(self._signal_handlers):
-            self.remove_signal_handler(sig)
+        if not sys.is_finalizing():
+            for sig in list(self._signal_handlers):
+                self.remove_signal_handler(sig)
+        else:
+            warinigs.warn(f"Closing the loop {self!r} on interpreter shutdown "
+                          f"stage, signal unsubsription is disabled",
+                          ResourceWarning,
+                          source=self)
 
     def _process_self_data(self, data):
         for signum in data:
diff --git a/Misc/NEWS.d/next/Library/2017-12-21-11-08-42.bpo-26133.mt81QV.rst b/Misc/NEWS.d/next/Library/2017-12-21-11-08-42.bpo-26133.mt81QV.rst
new file mode 100644 (file)
index 0000000..0653d19
--- /dev/null
@@ -0,0 +1 @@
+Don't unsubscribe signals in asyncio UNIX event loop on interpreter shutdown.