diff options
Diffstat (limited to 'src/buildstream/_scheduler/jobs/cleanupjob.py')
-rw-r--r-- | src/buildstream/_scheduler/jobs/cleanupjob.py | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/buildstream/_scheduler/jobs/cleanupjob.py b/src/buildstream/_scheduler/jobs/cleanupjob.py index 4764b30b3..325b9baa9 100644 --- a/src/buildstream/_scheduler/jobs/cleanupjob.py +++ b/src/buildstream/_scheduler/jobs/cleanupjob.py @@ -16,7 +16,7 @@ # Author: # Tristan Daniƫl Maat <tristan.maat@codethink.co.uk> # -from .job import Job, JobStatus +from .job import Job, JobStatus, ChildJob class CleanupJob(Job): @@ -27,12 +27,6 @@ class CleanupJob(Job): context = self._scheduler.context self._casquota = context.get_casquota() - def child_process(self): - def progress(): - self.send_message('update-cache-size', - self._casquota.get_cache_size()) - return self._casquota.clean(progress) - def handle_message(self, message_type, message): # Update the cache size in the main process as we go, # this provides better feedback in the UI. @@ -48,3 +42,18 @@ class CleanupJob(Job): if self._complete_cb: self._complete_cb(status, result) + + def create_child_job(self): + return ChildCacheSizeJob(self._scheduler.context.get_casquota()) + + +class ChildCleanupJob(ChildJob): + def __init__(self, casquota): + super().__init__() + self._casquota = casquota + + def child_process(self): + def progress(): + self.send_message('update-cache-size', + self._casquota.get_cache_size()) + return self._casquota.clean(progress) |