summaryrefslogtreecommitdiffstats
path: root/Lib/multiprocessing/popen_forkserver.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/multiprocessing/popen_forkserver.py')
-rw-r--r--Lib/multiprocessing/popen_forkserver.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/Lib/multiprocessing/popen_forkserver.py b/Lib/multiprocessing/popen_forkserver.py
index 222db2d..fa8e574 100644
--- a/Lib/multiprocessing/popen_forkserver.py
+++ b/Lib/multiprocessing/popen_forkserver.py
@@ -52,7 +52,7 @@ class Popen(popen_fork.Popen):
util.Finalize(self, os.close, (self.sentinel,))
with open(w, 'wb', closefd=True) as f:
f.write(buf.getbuffer())
- self.pid = forkserver.read_unsigned(self.sentinel)
+ self.pid = forkserver.read_signed(self.sentinel)
def poll(self, flag=os.WNOHANG):
if self.returncode is None:
@@ -61,8 +61,10 @@ class Popen(popen_fork.Popen):
if not wait([self.sentinel], timeout):
return None
try:
- self.returncode = forkserver.read_unsigned(self.sentinel)
+ self.returncode = forkserver.read_signed(self.sentinel)
except (OSError, EOFError):
- # The process ended abnormally perhaps because of a signal
+ # This should not happen usually, but perhaps the forkserver
+ # process itself got killed
self.returncode = 255
+
return self.returncode