mirror of
https://github.com/systemd/systemd.git
synced 2025-02-28 05:57:33 +03:00
core: add new "flush" job mode to cancel all other jobs when queuing a new job
This commit is contained in:
parent
d420282b28
commit
255baef68a
@ -1107,7 +1107,8 @@ static const char* const job_mode_table[_JOB_MODE_MAX] = {
|
||||
[JOB_REPLACE_IRREVERSIBLY] = "replace-irreversibly",
|
||||
[JOB_ISOLATE] = "isolate",
|
||||
[JOB_IGNORE_DEPENDENCIES] = "ignore-dependencies",
|
||||
[JOB_IGNORE_REQUIREMENTS] = "ignore-requirements"
|
||||
[JOB_IGNORE_REQUIREMENTS] = "ignore-requirements",
|
||||
[JOB_FLUSH] = "flush",
|
||||
};
|
||||
|
||||
DEFINE_STRING_TABLE_LOOKUP(job_mode, JobMode);
|
||||
|
@ -84,6 +84,7 @@ enum JobMode {
|
||||
JOB_REPLACE, /* Replace an existing conflicting job */
|
||||
JOB_REPLACE_IRREVERSIBLY,/* Like JOB_REPLACE + produce irreversible jobs */
|
||||
JOB_ISOLATE, /* Start a unit, and stop all others */
|
||||
JOB_FLUSH, /* Flush out all other queued jobs when queing this one */
|
||||
JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering dependencies */
|
||||
JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */
|
||||
_JOB_MODE_MAX,
|
||||
|
@ -578,7 +578,7 @@ static int transaction_apply(Transaction *tr, Manager *m, JobMode mode) {
|
||||
|
||||
/* Moves the transaction jobs to the set of active jobs */
|
||||
|
||||
if (mode == JOB_ISOLATE) {
|
||||
if (mode == JOB_ISOLATE || mode == JOB_FLUSH) {
|
||||
|
||||
/* When isolating first kill all installed jobs which
|
||||
* aren't part of the new transaction */
|
||||
|
Loading…
x
Reference in New Issue
Block a user