summaryrefslogtreecommitdiff
path: root/src/buildstream/_scheduler/scheduler.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildstream/_scheduler/scheduler.py')
-rw-r--r--src/buildstream/_scheduler/scheduler.py9
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: