procutil: make recent fix for zombies compatible with py2 stable
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 25 Jun 2020 00:06:23 -0700
branchstable
changeset 44978 95c672c07116
parent 44977 afcad425a0b6
child 44979 2fd8a8c11273
procutil: make recent fix for zombies compatible with py2 The fix in ed684a82e29b (procutil: always waiting on child processes to prevent zombies with 'hg serve', 2020-05-07) works only on Python 3 because it passes a `daemon` argument to `threading.Thread()`. Python 2 requires you to assign to the `.daemon` property instead. Python 3 also seems to support that, so this patch fixes the code by unconditionally using the old form. Differential Revision: https://phab.mercurial-scm.org/D8657
mercurial/utils/procutil.py
--- a/mercurial/utils/procutil.py	Wed Jun 24 04:25:34 2020 +0200
+++ b/mercurial/utils/procutil.py	Thu Jun 25 00:06:23 2020 -0700
@@ -615,7 +615,9 @@
                     def _do_wait():
                         os.waitpid(pid, 0)
 
-                    threading.Thread(target=_do_wait, daemon=True).start()
+                    t = threading.Thread(target=_do_wait)
+                    t.daemon = True
+                    t.start()
                     return
                 # Parent process
                 (_pid, status) = os.waitpid(pid, 0)