-fixing #2431
authorChristian Grothoff <christian@grothoff.org>
Mon, 18 Jun 2012 19:19:41 +0000 (19:19 +0000)
committerChristian Grothoff <christian@grothoff.org>
Mon, 18 Jun 2012 19:19:41 +0000 (19:19 +0000)
src/core/core_api.c

index 42077f3a3a310856d2eb63835401fa41da5f6aff..c377aedc1b9e1557902915c45ff35ba5bcb7ba1f 100644 (file)
@@ -1313,6 +1313,7 @@ GNUNET_CORE_notify_transmit_ready (struct GNUNET_CORE_Handle *handle, int cork,
   th->priority = priority;
   th->msize = notify_size;
   th->cork = cork;
+  GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == pr->ntr_task);
   pr->ntr_task =
     GNUNET_SCHEDULER_add_now (&run_request_next_transmission, pr);
   LOG (GNUNET_ERROR_TYPE_DEBUG, "Transmission request added to queue\n");
@@ -1353,6 +1354,11 @@ GNUNET_CORE_notify_transmit_ready_cancel (struct GNUNET_CORE_TransmitHandle *th)
      * us from the 'ready' list */
     GNUNET_CONTAINER_DLL_remove (h->ready_peer_head, h->ready_peer_tail, pr);
   }
+  if (GNUNET_SCHEDULER_NO_TASK != pr->ntr_task)
+  {
+    GNUNET_SCHEDULER_cancel (pr->ntr_task);
+    pr->ntr_task = GNUNET_SCHEDULER_NO_TASK;
+  }
 }