core: set some event source priorities to enforce dispatching order
This commit is contained in:
parent
5bcb0f2ba0
commit
290837072b
|
@ -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);
|
||||
|
||||
|
|
|
@ -1611,6 +1611,13 @@ static int mount_enumerate(Manager *m) {
|
|||
r = sd_event_add_io(m->event, fileno(m->proc_self_mountinfo), EPOLLPRI, mount_dispatch_io, m, &m->mount_event_source);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
/* Dispatch this before we dispatch SIGCHLD, so that
|
||||
* we always get the events from /proc/self/mountinfo
|
||||
* before the SIGCHLD of /bin/mount. */
|
||||
r = sd_event_source_set_priority(m->mount_event_source, -10);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
r = mount_load_proc_self_mountinfo(m, false);
|
||||
|
|
|
@ -1238,6 +1238,13 @@ static int swap_enumerate(Manager *m) {
|
|||
r = sd_event_add_io(m->event, fileno(m->proc_swaps), EPOLLPRI, swap_dispatch_io, m, &m->swap_event_source);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
/* Dispatch this before we dispatch SIGCHLD, so that
|
||||
* we always get the events from /proc/swaps before
|
||||
* the SIGCHLD of /sbin/swapon. */
|
||||
r = sd_event_source_set_priority(m->swap_event_source, -10);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
r = swap_load_proc_swaps(m, false);
|
||||
|
|
Loading…
Reference in New Issue