From: Christian Grothoff Date: Wed, 4 Nov 2009 14:13:53 +0000 (+0000) Subject: immediately kill, then wait X-Git-Tag: initial-import-from-subversion-38251~23167 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=68525a1c4a138ad17baacf5231115495ceaa9620;p=oweals%2Fgnunet.git immediately kill, then wait --- 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);