From: Zac Medico Date: Thu, 16 Feb 2012 21:42:59 +0000 (-0800) Subject: EventLoop: fix signal race in _sigchld_init X-Git-Tag: v2.2.0_alpha87~19 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f5e04fa4d74fc404cb067ecedf1adb7e5fc8846f;p=portage.git EventLoop: fix signal race in _sigchld_init --- diff --git a/pym/portage/util/_eventloop/EventLoop.py b/pym/portage/util/_eventloop/EventLoop.py index 3123cab66..9ca529fe1 100644 --- a/pym/portage/util/_eventloop/EventLoop.py +++ b/pym/portage/util/_eventloop/EventLoop.py @@ -242,11 +242,11 @@ class EventLoop(object): return source_id def _sigchld_init(self): - signal.signal(signal.SIGCHLD, self._sigchld_sig_cb) self._sigchld_read, self._sigchld_write = os.pipe() fcntl.fcntl(self._sigchld_read, fcntl.F_SETFL, fcntl.fcntl(self._sigchld_read, fcntl.F_GETFL) | os.O_NONBLOCK) self.io_add_watch(self._sigchld_read, self.IO_IN, self._sigchld_io_cb) + signal.signal(signal.SIGCHLD, self._sigchld_sig_cb) def _sigchld_sig_cb(self, signum, frame): # If this signal handler was not installed by the