chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
16354ef
)
recursively kill jobs from transaction list
author
Lennart Poettering
<lennart@poettering.net>
Wed, 20 Jan 2010 18:20:15 +0000
(19:20 +0100)
committer
Lennart Poettering
<lennart@poettering.net>
Wed, 20 Jan 2010 18:20:15 +0000
(19:20 +0100)
manager.c
patch
|
blob
|
history
diff --git
a/manager.c
b/manager.c
index 456eb8db1cc5ce703b8d975c143d2b3c90cc9acb..41124fff8972999aef1b4c580afd238037cac51a 100644
(file)
--- a/
manager.c
+++ b/
manager.c
@@
-487,8
+487,17
@@
void manager_transaction_delete_job(Manager *m, Job *j) {
while (j->subject_list)
job_dependency_free(j->subject_list);
while (j->subject_list)
job_dependency_free(j->subject_list);
- while (j->object_list)
+
+ while (j->object_list) {
+ Job *other = j->object_list->matters ? j->object_list->subject : NULL;
+
job_dependency_free(j->object_list);
job_dependency_free(j->object_list);
+
+ if (other) {
+ log_debug("Deleting job %s, as dependency of job %s", name_id(j->name), name_id(other->name));
+ manager_transaction_delete_job(m, other);
+ }
+ }
}
static int transaction_add_job_and_dependencies(Manager *m, JobType type, Name *name, Job *by, bool matters, bool force, Job **_ret) {
}
static int transaction_add_job_and_dependencies(Manager *m, JobType type, Name *name, Job *by, bool matters, bool force, Job **_ret) {