diff options
Diffstat (limited to 'src/buildstream/_scheduler/scheduler.py')
-rw-r--r-- | src/buildstream/_scheduler/scheduler.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/buildstream/_scheduler/scheduler.py b/src/buildstream/_scheduler/scheduler.py index 6133cbfd7..d3faa2a8e 100644 --- a/src/buildstream/_scheduler/scheduler.py +++ b/src/buildstream/_scheduler/scheduler.py @@ -165,8 +165,6 @@ class Scheduler(): # def run(self, queues, casd_process): - assert self.context.is_fork_allowed() - # Hold on to the queues to process self.queues = queues @@ -408,6 +406,13 @@ class Scheduler(): # If that happens, do another round. process_queues = any(q.dequeue_ready() for q in self.queues) + # Make sure fork is allowed before starting jobs + if not self.context.prepare_fork(): + message = Message(MessageType.BUG, "Fork is not allowed", detail="Background threads are active") + self._notify(Notification(NotificationType.MESSAGE, message=message)) + self.terminate_jobs() + return + # Start the jobs # for job in ready: |