chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core: add new "flush" job mode to cancel all other jobs when queuing a new job
[elogind.git]
/
src
/
core
/
manager.c
diff --git
a/src/core/manager.c
b/src/core/manager.c
index c424fece52f385170264f3eae032c58fc1d3de17..aa4baaacc8bdb01611b93ce93b10dc28bc40d149 100644
(file)
--- a/
src/core/manager.c
+++ b/
src/core/manager.c
@@
-368,6
+368,11
@@
static int manager_setup_signals(Manager *m) {
if (r < 0)
return r;
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);
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;
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"))
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);
manager_close_idle_pipe(m);
+ udev_unref(m->udev);
sd_event_unref(m->event);
free(m->notify_socket);
sd_event_unref(m->event);
free(m->notify_socket);