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.
--- 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: