X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fservice.c;h=7b5ff6d1ac87673df12dec69b86a27ae940f991e;hb=bfba3256a02a0871579c4ee48d787dfe4585fd8d;hp=807b34267f19622eaf984a82acd3a5abc4e7e6b4;hpb=8d1b002a2e389e79a2414491523de549783abf73;p=elogind.git diff --git a/src/core/service.c b/src/core/service.c index 807b34267..7b5ff6d1a 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -2961,12 +2961,10 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { else service_enter_signal(s, SERVICE_FINAL_SIGTERM, f); break; - } else { - assert(s->type == SERVICE_DBUS || s->type == SERVICE_NOTIFY); - - /* Fall through */ } + /* Fall through */ + case SERVICE_RUNNING: service_enter_running(s, f); break; @@ -3036,7 +3034,9 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { break; case SERVICE_START: - assert(s->type == SERVICE_FORKING); + if (s->type != SERVICE_FORKING) + /* Maybe spurious event due to a reload that changed the type? */ + break; if (f != SERVICE_SUCCESS) { service_enter_signal(s, SERVICE_FINAL_SIGTERM, f);