worker: stop using a separate thread waiting for children
authorJun Wu <quark@fb.com>
Sat, 12 Nov 2016 03:06:07 +0000
changeset 30416 c27614f2dec1
parent 30415 e8fb03cfbbde
child 30417 854190becacb
worker: stop using a separate thread waiting for children Now that we have a SIGCHLD hander, and it could get executed when waiting for I/O. It's no longer necessary to have a separated waitpid thread. So just remove it.
mercurial/worker.py
--- a/mercurial/worker.py	Sat Nov 12 03:07:22 2016 +0000
+++ b/mercurial/worker.py	Sat Nov 12 03:06:07 2016 +0000
@@ -11,7 +11,6 @@
 import os
 import signal
 import sys
-import threading
 
 from .i18n import _
 from . import (
@@ -138,11 +137,9 @@
         pids.add(pid)
     os.close(wfd)
     fp = os.fdopen(rfd, 'rb', 0)
-    t = threading.Thread(target=waitforworkers)
-    t.start()
     def cleanup():
         signal.signal(signal.SIGINT, oldhandler)
-        t.join()
+        waitforworkers()
         signal.signal(signal.SIGCHLD, oldchldhandler)
         status = problem[0]
         if status: