gnunet-svn
[Top][All Lists]
Advanced

[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);
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]