X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fmanager.c;h=c99a022cd5390ffc42d66848c223d3c4d6f0ab8a;hp=56191bfc7c340d46ccfac6097f30ccdf550848c9;hb=2f38577f3040eedebfe1ace05d5b5a779a588af1;hpb=a0a6408e31fef4618e27fafba416b9858f66a8e3 diff --git a/src/core/manager.c b/src/core/manager.c index 56191bfc7..c99a022cd 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -676,7 +676,7 @@ static unsigned manager_dispatch_gc_queue(Manager *m) { unit_gc_sweep(u, gc_marker); - LIST_REMOVE(Unit, gc_queue, m->gc_queue, u); + LIST_REMOVE(gc_queue, m->gc_queue, u); u->in_gc_queue = false; n++; @@ -800,7 +800,7 @@ int manager_enumerate(Manager *m) { return r; } -int manager_coldplug(Manager *m) { +static int manager_coldplug(Manager *m) { int r = 0, q; Iterator i; Unit *u; @@ -880,6 +880,29 @@ fail: m->unit_path_cache = NULL; } + +static int manager_distribute_fds(Manager *m, FDSet *fds) { + Unit *u; + Iterator i; + int r; + + assert(m); + + HASHMAP_FOREACH(u, m->units, i) { + + if (fdset_size(fds) <= 0) + break; + + if (UNIT_VTABLE(u)->distribute_fds) { + r = UNIT_VTABLE(u)->distribute_fds(u, fds); + if (r < 0) + return r; + } + } + + return 0; +} + int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { int r, q; @@ -1187,7 +1210,7 @@ void manager_clear_jobs(Manager *m) { job_finish_and_invalidate(j, JOB_CANCELED, false); } -unsigned manager_dispatch_run_queue(Manager *m) { +static unsigned manager_dispatch_run_queue(Manager *m) { Job *j; unsigned n = 0; @@ -1215,7 +1238,7 @@ unsigned manager_dispatch_run_queue(Manager *m) { return n; } -unsigned manager_dispatch_dbus_queue(Manager *m) { +static unsigned manager_dispatch_dbus_queue(Manager *m) { Job *j; Unit *u; unsigned n = 0; @@ -1766,7 +1789,7 @@ static int process_event(Manager *m, struct epoll_event *ev) { } case WATCH_IDLE_PIPE: { - m->no_console_output = true; + m->no_console_output = m->n_on_console > 0; manager_unwatch_idle_pipe(m); close_idle_pipe(m); @@ -1796,7 +1819,7 @@ int manager_loop(Manager *m) { manager_check_finished(m); /* There might still be some zombies hanging around from - * before we were exec()'ed. Leat's reap them */ + * before we were exec()'ed. Let's reap them. */ r = manager_dispatch_sigchld(m); if (r < 0) return r; @@ -2062,7 +2085,7 @@ void manager_dispatch_bus_query_pid_done( int manager_open_serialization(Manager *m, FILE **_f) { char *path = NULL; - int fd; + int fd = -1; FILE *f; assert(_f); @@ -2298,28 +2321,6 @@ finish: return r; } -int manager_distribute_fds(Manager *m, FDSet *fds) { - Unit *u; - Iterator i; - int r; - - assert(m); - - HASHMAP_FOREACH(u, m->units, i) { - - if (fdset_size(fds) <= 0) - break; - - if (UNIT_VTABLE(u)->distribute_fds) { - r = UNIT_VTABLE(u)->distribute_fds(u, fds); - if (r < 0) - return r; - } - } - - return 0; -} - int manager_reload(Manager *m) { int r, q; _cleanup_fclose_ FILE *f = NULL;