summaryrefslogtreecommitdiff
path: root/buildstream/_frontend
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-04-18 19:22:48 +0900
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-04-18 20:02:25 +0900
commit268340a56d81ede1bc9377a23a38d426f33e4f1f (patch)
tree2e66c2b0be36c555647309d227b12f25847d39f5 /buildstream/_frontend
parent853c54eb5c2251adac80982451a2178b7b7ec4c1 (diff)
downloadbuildstream-268340a56d81ede1bc9377a23a38d426f33e4f1f.tar.gz
_scheduler/scheduler.py: Adhere to policy on private symbols
Also added Scheduler.jobs_suspended() context manager to use in the App instead of exposing Scheduler.suspend_jobs() and Scheduler.resume_jobs() along with signal callback connect and disconnect APIs, this keeps things more private in the scheduler. This is a part of issue #285
Diffstat (limited to 'buildstream/_frontend')
-rw-r--r--buildstream/_frontend/app.py14
1 files changed, 5 insertions, 9 deletions
diff --git a/buildstream/_frontend/app.py b/buildstream/_frontend/app.py
index db9c97b84..f4336956d 100644
--- a/buildstream/_frontend/app.py
+++ b/buildstream/_frontend/app.py
@@ -778,16 +778,12 @@ class App():
@contextmanager
def _interrupted(self):
- self.scheduler.disconnect_signals()
-
self._status.clear()
- self.scheduler.suspend_jobs()
-
- yield
-
- self._maybe_render_status()
- self.scheduler.resume_jobs()
- self.scheduler.connect_signals()
+ try:
+ with self.scheduler.jobs_suspended():
+ yield
+ finally:
+ self._maybe_render_status()
# Some validation routines for project initialization
#