gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r31188 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r31188 - gnunet/src/mesh
Date: Sun, 8 Dec 2013 23:36:04 +0100

Author: grothoff
Date: 2013-12-08 23:36:04 +0100 (Sun, 08 Dec 2013)
New Revision: 31188

Modified:
   gnunet/src/mesh/gnunet-service-mesh_connection.c
Log:
fix #3170, again by cancelling scheduler tasks last so that they cannot be 
re-created by callbacks triggered during shutdown of the rest of the struct

Modified: gnunet/src/mesh/gnunet-service-mesh_connection.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_connection.c    2013-12-08 22:31:04 UTC 
(rev 31187)
+++ gnunet/src/mesh/gnunet-service-mesh_connection.c    2013-12-08 22:36:04 UTC 
(rev 31188)
@@ -2239,20 +2239,6 @@
        c->fwd_fc.poll_task, c->bck_fc.poll_task);
 
   /* Cancel maintainance task (keepalive/timeout) */
-  if (GNUNET_SCHEDULER_NO_TASK != c->fwd_maintenance_task)
-    GNUNET_SCHEDULER_cancel (c->fwd_maintenance_task);
-  if (GNUNET_SCHEDULER_NO_TASK != c->bck_maintenance_task)
-    GNUNET_SCHEDULER_cancel (c->bck_maintenance_task);
-  if (GNUNET_SCHEDULER_NO_TASK != c->fwd_fc.poll_task)
-  {
-    GNUNET_SCHEDULER_cancel (c->fwd_fc.poll_task);
-    LOG (GNUNET_ERROR_TYPE_DEBUG, " *** POLL FWD canceled\n");
-  }
-  if (GNUNET_SCHEDULER_NO_TASK != c->bck_fc.poll_task)
-  {
-    GNUNET_SCHEDULER_cancel (c->bck_fc.poll_task);
-    LOG (GNUNET_ERROR_TYPE_DEBUG, " *** POLL BCK canceled\n");
-  }
   if (NULL != c->fwd_fc.poll_msg)
   {
     GMC_cancel (c->fwd_fc.poll_msg);
@@ -2274,6 +2260,20 @@
 
   if (GNUNET_NO == GMC_is_origin (c, GNUNET_YES))
     path_destroy (c->path);
+  if (GNUNET_SCHEDULER_NO_TASK != c->fwd_maintenance_task)
+    GNUNET_SCHEDULER_cancel (c->fwd_maintenance_task);
+  if (GNUNET_SCHEDULER_NO_TASK != c->bck_maintenance_task)
+    GNUNET_SCHEDULER_cancel (c->bck_maintenance_task);
+  if (GNUNET_SCHEDULER_NO_TASK != c->fwd_fc.poll_task)
+  {
+    GNUNET_SCHEDULER_cancel (c->fwd_fc.poll_task);
+    LOG (GNUNET_ERROR_TYPE_DEBUG, " *** POLL FWD canceled\n");
+  }
+  if (GNUNET_SCHEDULER_NO_TASK != c->bck_fc.poll_task)
+  {
+    GNUNET_SCHEDULER_cancel (c->bck_fc.poll_task);
+    LOG (GNUNET_ERROR_TYPE_DEBUG, " *** POLL BCK canceled\n");
+  }
 
   GNUNET_break (GNUNET_YES ==
                 GNUNET_CONTAINER_multihashmap_remove (connections, &c->id, c));




reply via email to

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