summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngelos Evripiotis <jevripiotis@bloomberg.net>2019-05-09 10:15:36 +0100
committerAngelos Evripiotis <jevripiotis@bloomberg.net>2019-05-23 15:48:59 +0100
commit23b69c65b4424555194c1c8b18434d2b709ecb3d (patch)
tree67b7f4b67db46beac91966580f4b642677f9a9e4
parentbbbda5482de1ddfc05960cefa1b755ea88b12337 (diff)
downloadbuildstream-23b69c65b4424555194c1c8b18434d2b709ecb3d.tar.gz
jobs/job: send ChildJob the context, not scheduler
Instead of passing the whole scheduler to the ChildJob, only pass the part that is used - the context. Reducing the amount of shared state makes it easier to follow what's going on, and will make it more economical to move to away from the 'fork' model later.
-rw-r--r--src/buildstream/_scheduler/jobs/job.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/buildstream/_scheduler/jobs/job.py b/src/buildstream/_scheduler/jobs/job.py
index a899b8952..6b6f45be6 100644
--- a/src/buildstream/_scheduler/jobs/job.py
+++ b/src/buildstream/_scheduler/jobs/job.py
@@ -130,7 +130,7 @@ class Job():
child_job.setup(
self.action_name,
- self._scheduler,
+ self._scheduler.context,
self._queue,
self._max_retries,
self._tries,
@@ -508,10 +508,10 @@ class Job():
class ChildJob():
def setup(
- self, action_name, scheduler, queue, max_retries, tries, logfile, message_unique_id, task_id):
+ self, action_name, scheduler_context, queue, max_retries, tries, logfile, message_unique_id, task_id):
self.action_name = action_name
- self._scheduler = scheduler
+ self._scheduler_context = scheduler_context
self._queue = queue
self._max_retries = max_retries
self._tries = tries
@@ -537,7 +537,7 @@ class ChildJob():
if "unique_id" in kwargs:
unique_id = kwargs["unique_id"]
del kwargs["unique_id"]
- self._scheduler.context.message(
+ self._scheduler_context.message(
Message(unique_id, message_type, message, **kwargs))
# send_message()
@@ -606,7 +606,7 @@ class ChildJob():
# Set the global message handler in this child
# process to forward messages to the parent process
- self._scheduler.context.set_message_handler(self._child_message_handler)
+ self._scheduler_context.set_message_handler(self._child_message_handler)
starttime = datetime.datetime.now()
stopped_time = None
@@ -623,7 +623,7 @@ class ChildJob():
# Time, log and and run the action function
#
with _signals.suspendable(stop_time, resume_time), \
- self._scheduler.context.recorded_messages(self._logfile) as filename:
+ self._scheduler_context.recorded_messages(self._logfile) as filename:
self.message(MessageType.START, self.action_name, logfile=filename)