aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/program.c5
-rw-r--r--src/util/service.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/util/program.c b/src/util/program.c
index 01a8b496a1..5cd129b472 100644
--- a/src/util/program.c
+++ b/src/util/program.c
@@ -78,6 +78,7 @@ GNUNET_SPEEDUP_start_ (const struct GNUNET_CONFIGURATION_Handle *cfg);
int
GNUNET_SPEEDUP_stop_ (void);
+
/**
* Initial task called by the scheduler for each
* program. Runs the program-specific main task.
@@ -86,8 +87,10 @@ static void
program_main (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct CommandContext *cc = cls;
- GNUNET_SPEEDUP_start_(cc->cfg);
+ if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
+ return;
+ GNUNET_SPEEDUP_start_(cc->cfg);
GNUNET_RESOLVER_connect (cc->cfg);
cc->task (cc->task_cls, cc->args, cc->cfgfile, cc->cfg);
}
diff --git a/src/util/service.c b/src/util/service.c
index c6fdc1f8d6..b9050f8309 100644
--- a/src/util/service.c
+++ b/src/util/service.c
@@ -1504,6 +1504,8 @@ service_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
struct GNUNET_SERVICE_Context *sctx = cls;
unsigned int i;
+ if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason))
+ return;
GNUNET_RESOLVER_connect (sctx->cfg);
if (NULL != sctx->lsocks)
sctx->server =