Fix handling of SystemExit and exit code. Patch by Brodie Rao.
diff --git a/Lib/multiprocessing/process.py b/Lib/multiprocessing/process.py
index 893507b..3d32add 100644
--- a/Lib/multiprocessing/process.py
+++ b/Lib/multiprocessing/process.py
@@ -266,7 +266,7 @@
exitcode = e.args[0]
else:
sys.stderr.write(str(e.args[0]) + '\n')
- exitcode = 0 if isinstance(e.args[0], str) else 1
+ exitcode = 1
except:
exitcode = 1
import traceback
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 86cf5c1..77ad0f7 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -467,7 +467,7 @@
testfn = test.support.TESTFN
self.addCleanup(test.support.unlink, testfn)
- for reason, code in (([1, 2, 3], 1), ('ignore this', 0)):
+ for reason, code in (([1, 2, 3], 1), ('ignore this', 1)):
p = self.Process(target=self._test_sys_exit, args=(reason, testfn))
p.daemon = True
p.start()