]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-109370: Fix unexpected traceback output in test_concurrent_futures (GH-109780)
authorSerhiy Storchaka <storchaka@gmail.com>
Tue, 26 Sep 2023 07:06:07 +0000 (10:06 +0300)
committerGitHub <noreply@github.com>
Tue, 26 Sep 2023 07:06:07 +0000 (10:06 +0300)
Follow-up of gh-107219.

* Only close the connection writer on Windows.
* Also use existing constant _winapi.ERROR_OPERATION_ABORTED instead of
  WSA_OPERATION_ABORTED.

Lib/concurrent/futures/process.py
Lib/multiprocessing/connection.py

index 48d8db3ed423a57fbded4083902d5b4940d945ac..011e79a5e73d5ae35e58d61c50096195789b7a9a 100644 (file)
@@ -521,7 +521,8 @@ class _ExecutorManagerThread(threading.Thread):
 
         # gh-107219: Close the connection writer which can unblock
         # Queue._feed() if it was stuck in send_bytes().
-        self.call_queue._writer.close()
+        if sys.platform == 'win32':
+            self.call_queue._writer.close()
 
         # clean up resources
         self.join_executor_internals()
index 7c425a2d8e70344a19ffc5415f19690bbc3a91c9..dbbf106f680964932768073172c8fd09965d4195 100644 (file)
@@ -42,7 +42,6 @@ except ImportError:
 BUFSIZE = 8192
 # A very generous timeout when it comes to local connections...
 CONNECTION_TIMEOUT = 20.
-WSA_OPERATION_ABORTED = 995
 
 _mmap_counter = itertools.count()
 
@@ -300,7 +299,7 @@ if _winapi:
             finally:
                 self._send_ov = None
                 nwritten, err = ov.GetOverlappedResult(True)
-            if err == WSA_OPERATION_ABORTED:
+            if err == _winapi.ERROR_OPERATION_ABORTED:
                 # close() was called by another thread while
                 # WaitForMultipleObjects() was waiting for the overlapped
                 # operation.