From 68525a1c4a138ad17baacf5231115495ceaa9620 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 4 Nov 2009 14:13:53 +0000 Subject: [PATCH] immediately kill, then wait --- src/arm/gnunet-service-arm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/arm/gnunet-service-arm.c b/src/arm/gnunet-service-arm.c index bfb3896bf..2760f9156 100644 --- a/src/arm/gnunet-service-arm.c +++ b/src/arm/gnunet-service-arm.c @@ -625,11 +625,16 @@ maint (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Stopping all services\n")); - while (NULL != (pos = running)) + pos = running; + while (NULL != pos) { - running = pos->next; if (0 != PLIBC_KILL (pos->pid, SIGTERM)) GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); + pos = pos->next; + } + while (NULL != (pos = running)) + { + running = pos->next; if (GNUNET_OK != GNUNET_OS_process_wait(pos->pid)) GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid"); free_entry (pos); -- 2.25.1