diff options
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 3c72b60f50..e8dfb394cd 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -937,8 +937,9 @@ class RunQueue: | |||
937 | if self.worker: | 937 | if self.worker: |
938 | self.teardown_workers() | 938 | self.teardown_workers() |
939 | self.teardown = False | 939 | self.teardown = False |
940 | self.oldsigchld = signal.getsignal(signal.SIGCHLD) | 940 | if not self.oldsigchld: |
941 | signal.signal(signal.SIGCHLD, self.sigchild_exception) | 941 | self.oldsigchld = signal.getsignal(signal.SIGCHLD) |
942 | signal.signal(signal.SIGCHLD, self.sigchild_exception) | ||
942 | self.worker, self.workerpipe = self._start_worker() | 943 | self.worker, self.workerpipe = self._start_worker() |
943 | 944 | ||
944 | def start_fakeworker(self, rqexec): | 945 | def start_fakeworker(self, rqexec): |
@@ -949,6 +950,7 @@ class RunQueue: | |||
949 | self.teardown = True | 950 | self.teardown = True |
950 | if self.oldsigchld: | 951 | if self.oldsigchld: |
951 | signal.signal(signal.SIGCHLD, self.oldsigchld) | 952 | signal.signal(signal.SIGCHLD, self.oldsigchld) |
953 | self.oldsigchld = None | ||
952 | self._teardown_worker(self.worker, self.workerpipe) | 954 | self._teardown_worker(self.worker, self.workerpipe) |
953 | self.worker = None | 955 | self.worker = None |
954 | self.workerpipe = None | 956 | self.workerpipe = None |