From 1108ec482bba414f016b35a45e5d43ff99994b7b Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 22 Feb 2017 23:51:45 +0100 Subject: [PATCH] fix shutdown sequence on MQ errors --- src/util/service_new.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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) -- 2.25.1