diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py index 2ae8a811f16..25b0326333e 100644 --- a/Lib/multiprocessing/connection.py +++ b/Lib/multiprocessing/connection.py @@ -405,7 +405,7 @@ class Connection(_ConnectionBase): return self._recv(size) def _poll(self, timeout): - r = wait([self._handle], timeout) + r = wait([self], timeout) return bool(r) diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py index 533dbacc8f7..bb09638d8c6 100644 --- a/Lib/test/test_multiprocessing.py +++ b/Lib/test/test_multiprocessing.py @@ -2383,6 +2383,17 @@ class _TestListenerClient(BaseTestCase): p.join() l.close() + def test_issue16955(self): + for fam in self.connection.families: + l = self.connection.Listener(family=fam) + c = self.connection.Client(l.address) + a = l.accept() + a.send_bytes(b"hello") + self.assertTrue(c.poll(1)) + a.close() + c.close() + l.close() + class _TestPoll(unittest.TestCase): ALLOWED_TYPES = ('processes', 'threads') diff --git a/Misc/NEWS b/Misc/NEWS index d09406bb155..c444ed66b70 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -147,6 +147,9 @@ Core and Builtins Library ------- +- Issue #16955: Fix the poll() method for multiprocessing's socket + connections on Windows. + - SSLContext.load_dh_params() now properly closes the input file. - Issue #16829: IDLE printing no longer fails if there are spaces or other