From: Christian Grothoff Date: Wed, 22 Feb 2017 22:51:45 +0000 (+0100) Subject: fix shutdown sequence on MQ errors X-Git-Tag: taler-0.2.1~70^2~27 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1108ec482bba414f016b35a45e5d43ff99994b7b;p=oweals%2Fgnunet.git fix shutdown sequence on MQ errors --- diff --git a/src/util/service_new.c b/src/util/service_new.c index 731be2cfe..eaaf053b8 100644 --- a/src/util/service_new.c +++ b/src/util/service_new.c @@ -1996,8 +1996,9 @@ service_mq_send (struct GNUNET_MQ_Handle *mq, { struct GNUNET_SERVICE_Client *client = impl_state; + if (NULL != client->drop_task) + return; /* we're going down right now, do not try to send */ GNUNET_assert (NULL == client->send_task); - GNUNET_assert (NULL == client->drop_task); client->msg = msg; client->msg_pos = 0; client->send_task @@ -2466,6 +2467,10 @@ finish_client_drop (void *cls) struct GNUNET_SERVICE_Client *c = cls; struct GNUNET_SERVICE_Handle *sh = c->sh; + c->drop_task = NULL; + GNUNET_assert (NULL == c->send_task); + GNUNET_assert (NULL == c->recv_task); + GNUNET_assert (NULL == c->warn_task); GNUNET_MST_destroy (c->mst); GNUNET_MQ_destroy (c->mq); if (GNUNET_NO == c->persist)