[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r16743 - gnunet/src/mesh
From: |
gnunet |
Subject: |
[GNUnet-SVN] r16743 - gnunet/src/mesh |
Date: |
Fri, 9 Sep 2011 19:48:28 +0200 |
Author: bartpolot
Date: 2011-09-09 19:48:28 +0200 (Fri, 09 Sep 2011)
New Revision: 16743
Modified:
gnunet/src/mesh/gnunet-service-mesh.c
Log:
Fixed broken assertions on abort
Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c 2011-09-09 17:19:52 UTC (rev
16742)
+++ gnunet/src/mesh/gnunet-service-mesh.c 2011-09-09 17:48:28 UTC (rev
16743)
@@ -1965,6 +1965,9 @@
GNUNET_break_op (0);
return;
}
+ GNUNET_assert (NULL != t->client);
+ GNUNET_DHT_get_stop(t->client->dht_get_type);
+ t->client->dht_get_type = NULL;
peer_info = get_peer_info (pi);
GNUNET_CONTAINER_multihashmap_put (t->peers, &pi->hashPubKey, peer_info,
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY);
@@ -2059,12 +2062,16 @@
GNUNET_CONTAINER_multihashmap_iterate(c->apps, &deregister_app, NULL);
GNUNET_CONTAINER_multihashmap_destroy(c->apps);
}
- if (0 == GNUNET_CONTAINER_multihashmap_size(applications))
+ if (0 == GNUNET_CONTAINER_multihashmap_size(applications) &&
+ GNUNET_SCHEDULER_NO_TASK != announce_applications_task)
{
GNUNET_SCHEDULER_cancel (announce_applications_task);
+ announce_applications_task = GNUNET_SCHEDULER_NO_TASK;
}
if (NULL != c->types)
GNUNET_CONTAINER_multihashmap_destroy(c->types);
+ if (NULL != c->dht_get_type)
+ GNUNET_DHT_get_stop(c->dht_get_type);
GNUNET_CONTAINER_DLL_remove (clients, clients_tail, c);
next = c->next;
GNUNET_free (c);
@@ -2839,6 +2846,8 @@
static void
shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
+ struct MeshClient *c;
+
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "MESH: shutting down\n");
if (core_handle != NULL)
{
@@ -2847,6 +2856,9 @@
}
if (dht_handle != NULL)
{
+ for (c = clients; NULL != c; c = c->next)
+ if (NULL != c->dht_get_type)
+ GNUNET_DHT_get_stop(c->dht_get_type);
GNUNET_DHT_disconnect (dht_handle);
dht_handle = NULL;
}
@@ -2855,10 +2867,10 @@
GNUNET_SERVER_notification_context_destroy (nc);
nc = NULL;
}
- if (0 != announce_id_task)
+ if (GNUNET_SCHEDULER_NO_TASK != announce_id_task)
{
GNUNET_SCHEDULER_cancel (announce_id_task);
- announce_id_task = 0;
+ announce_id_task = GNUNET_SCHEDULER_NO_TASK;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "MESH: shut down\n");
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r16743 - gnunet/src/mesh,
gnunet <=