From 9f4527411bbba4c36d27509879d0340a546600ce Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 18 Nov 2010 02:37:35 +0100 Subject: [PATCH] cgroup: after killing cgroup processes, ensure the group is really dead gone. wait for 3s at max --- src/cgroup-util.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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; -- 2.30.2