X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fsocket.c;h=f67370b4cb921d0d041b7d5e7b4ed991af6a2db9;hb=a3b23257872fe2f8cf99aa2da008f55ada583bb3;hp=7d052f2ef97808ae2d8e4e1b6757f64207860788;hpb=2eec67acbb00593e414549a7e5b35eb7dd776b1b;p=elogind.git diff --git a/src/core/socket.c b/src/core/socket.c index 7d052f2ef..f67370b4c 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -1322,7 +1322,7 @@ static void socket_set_state(Socket *s, SocketState state) { unit_notify(UNIT(s), state_translation_table[old_state], state_translation_table[state], true); } -static int socket_coldplug(Unit *u) { +static int socket_coldplug(Unit *u, Hashmap *deferred_work) { Socket *s = SOCKET(u); int r; @@ -1392,7 +1392,11 @@ static int socket_spawn(Socket *s, ExecCommand *c, pid_t *_pid) { assert(c); assert(_pid); - unit_realize_cgroup(UNIT(s)); + (void) unit_realize_cgroup(UNIT(s)); + if (s->reset_cpu_usage) { + (void) unit_reset_cpu_usage(UNIT(s)); + s->reset_cpu_usage = false; + } r = unit_setup_exec_runtime(UNIT(s)); if (r < 0) @@ -1948,6 +1952,8 @@ static int socket_start(Unit *u) { assert(s->state == SOCKET_DEAD || s->state == SOCKET_FAILED); s->result = SOCKET_SUCCESS; + s->reset_cpu_usage = true; + socket_enter_start_pre(s); return 1;