chiark / gitweb /
swap: always track the current real device node of all swap devices, even when not...
[elogind.git] / src / core / manager.c
index c424fece52f385170264f3eae032c58fc1d3de17..aa4baaacc8bdb01611b93ce93b10dc28bc40d149 100644 (file)
@@ -368,6 +368,11 @@ static int manager_setup_signals(Manager *m) {
         if (r < 0)
                 return r;
 
+        /* Process signals a bit earlier than the rest of things */
+        r = sd_event_source_set_priority(m->signal_event_source, -5);
+        if (r < 0)
+                return r;
+
         if (m->running_as == SYSTEMD_SYSTEM)
                 return enable_special_signals(m);
 
@@ -485,6 +490,12 @@ int manager_new(SystemdRunningAs running_as, bool reexecuting, Manager **_m) {
         if (r < 0)
                 goto fail;
 
+        m->udev = udev_new();
+        if (!m->udev) {
+                r = -ENOMEM;
+                goto fail;
+        }
+
         if (running_as == SYSTEMD_SYSTEM)
                 try_bus_connect = reexecuting;
         else if (getenv("DBUS_SESSION_BUS_ADDRESS"))
@@ -686,6 +697,7 @@ void manager_free(Manager *m) {
 
         manager_close_idle_pipe(m);
 
+        udev_unref(m->udev);
         sd_event_unref(m->event);
 
         free(m->notify_socket);