[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r33009 - gnunet/src/mesh
From: |
gnunet |
Subject: |
[GNUnet-SVN] r33009 - gnunet/src/mesh |
Date: |
Thu, 10 Apr 2014 02:01:17 +0200 |
Author: bartpolot
Date: 2014-04-10 02:01:17 +0200 (Thu, 10 Apr 2014)
New Revision: 33009
Modified:
gnunet/src/mesh/gnunet-service-mesh_tunnel.c
Log:
- don't schedule tunnel destruction on shutdown
- remove any scheduled delayed_destruction AFTER destroying all channels
- fixes #3366, #3372
Modified: gnunet/src/mesh/gnunet-service-mesh_tunnel.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_tunnel.c 2014-04-10 00:01:16 UTC
(rev 33008)
+++ gnunet/src/mesh/gnunet-service-mesh_tunnel.c 2014-04-10 00:01:17 UTC
(rev 33009)
@@ -2135,6 +2135,9 @@
void
GMT_destroy_empty (struct MeshTunnel3 *t)
{
+ if (GNUNET_YES == shutting_down)
+ return; /* Will be destroyed immediately anyway */
+
if (GNUNET_SCHEDULER_NO_TASK != t->destroy_task)
{
LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -2197,12 +2200,6 @@
return;
LOG (GNUNET_ERROR_TYPE_DEBUG, "destroying tunnel %s\n", GMP_2s (t->peer));
- if (GNUNET_SCHEDULER_NO_TASK != t->destroy_task)
- {
- LOG (GNUNET_ERROR_TYPE_DEBUG, "cancelling %llX\n", t->destroy_task);
- GNUNET_SCHEDULER_cancel (t->destroy_task);
- t->destroy_task = GNUNET_SCHEDULER_NO_TASK;
- }
GNUNET_break (GNUNET_YES ==
GNUNET_CONTAINER_multipeermap_remove (tunnels,
@@ -2220,6 +2217,13 @@
/* Should only happen on shutdown, but it's ok. */
}
+ if (GNUNET_SCHEDULER_NO_TASK != t->destroy_task)
+ {
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "cancelling %llX\n", t->destroy_task);
+ GNUNET_SCHEDULER_cancel (t->destroy_task);
+ t->destroy_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+
GNUNET_STATISTICS_update (stats, "# tunnels", -1, GNUNET_NO);
GMP_set_tunnel (t->peer, NULL);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33009 - gnunet/src/mesh,
gnunet <=