Message367508
How about the following (untested):
diff --git a/Lib/concurrent/futures/process.py b/Lib/concurrent/futures/process.py
index 8e9b69a8f0..c0c2eb3032 100644
--- a/Lib/concurrent/futures/process.py
+++ b/Lib/concurrent/futures/process.py
@@ -66,23 +66,29 @@ _global_shutdown = False
class _ThreadWakeup:
def __init__(self):
- self._closed = False
self._reader, self._writer = mp.Pipe(duplex=False)
def close(self):
- if not self._closed:
- self._closed = True
- self._writer.close()
- self._reader.close()
+ r, w = self._reader, self._writer
+ self._reader = self._writer = None
+ if r is not None:
+ r.close()
+ w.close()
def wakeup(self):
- if not self._closed:
+ try:
self._writer.send_bytes(b"")
+ except AttributeError:
+ # Closed
+ pass
def clear(self):
- if not self._closed:
+ try:
while self._reader.poll():
self._reader.recv_bytes()
+ except AttributeError:
+ # Closed
+ pass
def _python_exit(): |
|
Date |
User |
Action |
Args |
2020-04-28 08:08:36 | pitrou | set | recipients:
+ pitrou, vstinner, tomMoral, aeros |
2020-04-28 08:08:36 | pitrou | set | messageid: <1588061316.74.0.479206287444.issue39995@roundup.psfhosted.org> |
2020-04-28 08:08:36 | pitrou | link | issue39995 messages |
2020-04-28 08:08:36 | pitrou | create | |
|