mirror of https://github.com/m-labs/artiq.git
scheduler: consider the pipeline flushed if everything has a lower priority than us. Closes #640
This commit is contained in:
parent
a649408304
commit
e4a631a3d7
|
@ -43,6 +43,9 @@ Release notes
|
||||||
those logs to the master. See the example device databases to see how to
|
those logs to the master. See the example device databases to see how to
|
||||||
instantiate this controller. Using ``artiq_session`` ensures that a controller
|
instantiate this controller. Using ``artiq_session`` ensures that a controller
|
||||||
manager is running simultaneously with the master.
|
manager is running simultaneously with the master.
|
||||||
|
* Experiments scheduled with the "flush pipeline" option now proceed when there
|
||||||
|
are lower-priority experiments in the pipeline. Only experiments at the current
|
||||||
|
(or higher) priority level are flushed.
|
||||||
|
|
||||||
|
|
||||||
2.3
|
2.3
|
||||||
|
|
|
@ -294,7 +294,8 @@ class _ExperimentDock(QtWidgets.QMdiSubWindow):
|
||||||
priority.valueChanged.connect(update_priority)
|
priority.valueChanged.connect(update_priority)
|
||||||
|
|
||||||
flush = QtWidgets.QCheckBox("Flush")
|
flush = QtWidgets.QCheckBox("Flush")
|
||||||
flush.setToolTip("Flush the pipeline before starting the experiment")
|
flush.setToolTip("Flush the pipeline (of current- and higher-priority "
|
||||||
|
"experiments) before starting the experiment")
|
||||||
self.layout.addWidget(flush, 2, 2, 1, 2)
|
self.layout.addWidget(flush, 2, 2, 1, 2)
|
||||||
|
|
||||||
flush.setChecked(scheduling["flush"])
|
flush.setChecked(scheduling["flush"])
|
||||||
|
|
|
@ -204,6 +204,7 @@ class PrepareStage(TaskObject):
|
||||||
run.status = RunStatus.flushing
|
run.status = RunStatus.flushing
|
||||||
while not all(r.status in (RunStatus.pending,
|
while not all(r.status in (RunStatus.pending,
|
||||||
RunStatus.deleting)
|
RunStatus.deleting)
|
||||||
|
or r.priority < run.priority
|
||||||
or r is run
|
or r is run
|
||||||
for r in self.pool.runs.values()):
|
for r in self.pool.runs.values()):
|
||||||
ev = [self.pool.state_changed.wait(),
|
ev = [self.pool.state_changed.wait(),
|
||||||
|
|
Loading…
Reference in New Issue