X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcgroup-util.c;h=4cf184ae1b34bfb6e21459e78e87417f86bd5286;hb=8e1bd70d4ce6d3881c1df6a6482643a2b3a69bb1;hp=ccc94f86a1fc3eb4c70da24675fca9f742f23763;hpb=2db9ecac35f9f18b9cd76e5026c31c5eb015ac8c;p=elogind.git diff --git a/src/cgroup-util.c b/src/cgroup-util.c index ccc94f86a..4cf184ae1 100644 --- a/src/cgroup-util.c +++ b/src/cgroup-util.c @@ -321,16 +321,17 @@ int cg_kill_recursive_and_wait(const char *controller, const char *path, bool re assert(controller); /* This safely kills all processes; first it sends a SIGTERM, - * then checks 8 times after 50ms whether the group is - * now empty, and finally kills everything that is left with - * SIGKILL */ + * then checks 8 times after 200ms whether the group is now + * empty, then kills everything that is left with SIGKILL and + * finally checks 5 times after 200ms each whether the group + * is finally empty. */ - for (i = 0; i < 10; i++) { + for (i = 0; i < 15; i++) { int sig, r; if (i <= 0) sig = SIGTERM; - else if (i >= 9) + else if (i == 9) sig = SIGKILL; else sig = 0; @@ -338,7 +339,7 @@ int cg_kill_recursive_and_wait(const char *controller, const char *path, bool re if ((r = cg_kill_recursive(controller, path, sig, true, rem, NULL)) <= 0) return r; - usleep(50 * USEC_PER_MSEC); + usleep(200 * USEC_PER_MSEC); } return 0;