chiark / gitweb /
job: when cancelling jobs, make sure to propagate this properly to depending jobs
authorLennart Poettering <lennart@poettering.net>
Thu, 24 Feb 2011 02:23:14 +0000 (03:23 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 24 Feb 2011 02:23:14 +0000 (03:23 +0100)
TODO
src/dbus-job.c
src/manager.c

diff --git a/TODO b/TODO
index c7ba9fe7f596b9494066192cc54adc573132b641..0f643073d70d0dae37bc78bbe7a47521c7799647 100644 (file)
--- 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
index 16aa8d071eb18dfa3f1b4f8a5c17c5615f168dd2..2a33039bdb23a95eb50b65ce5e0e022a96d3603c 100644 (file)
@@ -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);
index f266aaa01c652d8ce2d2e6da24cabed5fc512cfe..d77dc096172fa9fdf757a5fc0601ffa9c7280f23 100644 (file)
@@ -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) {