gnunet-svn
[Top][All Lists]
Advanced

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

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


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

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

Modified:
   gnunet/src/mesh/gnunet-service-mesh_channel.c
Log:
-fix #3168, cancel retry task AFTER GMT_cancel, as that triggers a callback in 
gnunet-service-mesh-peer.c:952 which may then CREATE a new task

Modified: gnunet/src/mesh/gnunet-service-mesh_channel.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_channel.c       2013-12-08 22:05:57 UTC 
(rev 31186)
+++ gnunet/src/mesh/gnunet-service-mesh_channel.c       2013-12-08 22:31:04 UTC 
(rev 31187)
@@ -918,12 +918,13 @@
     LOG (GNUNET_ERROR_TYPE_DEBUG, " COPYFREE BATCH %p\n", copy);
     GNUNET_free (copy);
   }
+  if (NULL != rel->uniq && NULL != rel->uniq->q)
+    GMT_cancel (rel->uniq->q);
   if (GNUNET_SCHEDULER_NO_TASK != rel->retry_task)
   {
     GNUNET_SCHEDULER_cancel (rel->retry_task);
+    rel->retry_task = GNUNET_SCHEDULER_NO_TASK;
   }
-  if (NULL != rel->uniq && NULL != rel->uniq->q)
-    GMT_cancel (rel->uniq->q);
   GNUNET_free (rel);
 }
 
@@ -1965,6 +1966,7 @@
     if (GNUNET_SCHEDULER_NO_TASK != rel->retry_task)
     {
       GNUNET_SCHEDULER_cancel (rel->retry_task);
+      rel->retry_task = GNUNET_SCHEDULER_NO_TASK;
       if (NULL != rel->head_sent && NULL == rel->head_sent->q)
       {
         struct GNUNET_TIME_Absolute new_target;
@@ -1980,10 +1982,6 @@
                                           &channel_retransmit_message,
                                           rel);
       }
-      else /* either no more traffic to ack or traffic has just been queued */
-      {
-        rel->retry_task = GNUNET_SCHEDULER_NO_TASK;
-      }
     }
     else /* work was done but no task was pending? shouldn't happen! */
     {




reply via email to

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