summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-02-24 03:23:14 +0100
committerLennart Poettering <lennart@poettering.net>2011-02-24 03:23:14 +0100
commitc77bc38d28b2da11dcd219635205e633b5c0cd28 (patch)
treeba5e6a8f06d755a8752dcf8245ca140b3a807050
parent312732cfaf63b463b2062c47fddb2d639a5fe635 (diff)
job: when cancelling jobs, make sure to propagate this properly to depending jobs
-rw-r--r--TODO2
-rw-r--r--src/dbus-job.c2
-rw-r--r--src/manager.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/TODO b/TODO
index c7ba9fe7f5..0f643073d7 100644
--- a/TODO
+++ b/TODO
@@ -19,6 +19,8 @@ F15:
* Make systemd-cryptsetup cancellable
+* udev should be able to upgrade its database on its own
+
Features:
* introduce simple way to do mandatory conditions
diff --git a/src/dbus-job.c b/src/dbus-job.c
index 16aa8d071e..2a33039bdb 100644
--- a/src/dbus-job.c
+++ b/src/dbus-job.c
@@ -97,7 +97,7 @@ static DBusHandlerResult bus_job_message_dispatch(Job *j, DBusConnection *connec
if (!(reply = dbus_message_new_method_return(message)))
goto oom;
- job_free(j);
+ job_finish_and_invalidate(j, JOB_CANCELED);
} else
return bus_default_message_handler(j->manager, connection, message, INTROSPECTION, properties);
diff --git a/src/manager.c b/src/manager.c
index f266aaa01c..d77dc09617 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -1823,7 +1823,7 @@ void manager_clear_jobs(Manager *m) {
transaction_abort(m);
while ((j = hashmap_first(m->jobs)))
- job_free(j);
+ job_finish_and_invalidate(j, JOB_CANCELED);
}
unsigned manager_dispatch_run_queue(Manager *m) {