gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r11331 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r11331 - gnunet/src/util
Date: Tue, 11 May 2010 21:16:47 +0200

Author: grothoff
Date: 2010-05-11 21:16:47 +0200 (Tue, 11 May 2010)
New Revision: 11331

Modified:
   gnunet/src/util/client.c
   gnunet/src/util/connection.c
Log:
asserts

Modified: gnunet/src/util/client.c
===================================================================
--- gnunet/src/util/client.c    2010-05-11 19:08:27 UTC (rev 11330)
+++ gnunet/src/util/client.c    2010-05-11 19:16:47 UTC (rev 11331)
@@ -34,7 +34,7 @@
 #include "gnunet_server_lib.h"
 #include "gnunet_scheduler_lib.h"
 
-#define DEBUG_CLIENT GNUNET_NO
+#define DEBUG_CLIENT GNUNET_YES
 
 /**
  * How often do we re-try tranmsitting requests before giving up?

Modified: gnunet/src/util/connection.c
===================================================================
--- gnunet/src/util/connection.c        2010-05-11 19:08:27 UTC (rev 11330)
+++ gnunet/src/util/connection.c        2010-05-11 19:16:47 UTC (rev 11331)
@@ -245,6 +245,11 @@
   GNUNET_SCHEDULER_TaskIdentifier write_task;
 
   /**
+   * Destroy task (if already scheduled).
+   */
+  GNUNET_SCHEDULER_TaskIdentifier destroy_task;
+
+  /**
    * Handle to a pending DNS lookup request.
    */
   struct GNUNET_RESOLVER_RequestHandle *dns_active;
@@ -472,7 +477,8 @@
   struct GNUNET_CONNECTION_Handle *sock = cls;
   GNUNET_CONNECTION_TransmitReadyNotify notify;
   struct AddressProbe *pos;
-
+  
+  sock->destroy_task = GNUNET_SCHEDULER_NO_TASK;
   GNUNET_assert (sock->dns_active == NULL);
   if (0 != (sock->ccs & COCO_TRANSMIT_READY))
     {
@@ -489,9 +495,11 @@
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                   "Destroy waits for write_task to be done (%p)\n", sock);
 #endif
-      GNUNET_SCHEDULER_add_after (sock->sched,
-                                  sock->write_task,
-                                  &destroy_continuation, sock);
+      GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sock->destroy_task);
+      sock->destroy_task 
+       = GNUNET_SCHEDULER_add_after (sock->sched,
+                                     sock->write_task,
+                                     &destroy_continuation, sock);
       return;
     }
   if (0 != (sock->ccs & COCO_RECEIVE_AGAIN))
@@ -510,9 +518,11 @@
     }
   if (sock->read_task != GNUNET_SCHEDULER_NO_TASK)
     {
-      GNUNET_SCHEDULER_add_after (sock->sched,
-                                  sock->read_task,
-                                  &destroy_continuation, sock);
+      GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sock->destroy_task);
+      sock->destroy_task 
+       = GNUNET_SCHEDULER_add_after (sock->sched,
+                                     sock->read_task,
+                                     &destroy_continuation, sock);
       return;
     }
 #if DEBUG_CONNECTION
@@ -549,6 +559,7 @@
     }
   GNUNET_free_non_null (sock->addr);
   GNUNET_free_non_null (sock->hostname);
+  GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sock->destroy_task);
 #if DEBUG_CONNECTION
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Freeing memory of connection %p.\n", sock);
@@ -625,9 +636,11 @@
                   h);
 #endif
       h->ccs -= COCO_DESTROY_CONTINUATION;
-      GNUNET_SCHEDULER_add_continuation (h->sched,
-                                         &destroy_continuation,
-                                         h, GNUNET_SCHEDULER_REASON_TIMEOUT);
+      GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == h->destroy_task);
+      h->destroy_task
+       = GNUNET_SCHEDULER_add_now (h->sched,
+                                   &destroy_continuation,
+                                   h);
     }
 }
 
@@ -683,10 +696,11 @@
                   h);
 #endif
       h->ccs -= COCO_DESTROY_CONTINUATION;
-      GNUNET_SCHEDULER_add_continuation (h->sched,
-                                         &destroy_continuation,
-                                         h,
-                                         GNUNET_SCHEDULER_REASON_PREREQ_DONE);
+      GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == h->destroy_task);
+      h->destroy_task
+       = GNUNET_SCHEDULER_add_now (h->sched,
+                                   &destroy_continuation,
+                                   h);
     }
 }
 
@@ -974,8 +988,10 @@
       sock->dns_active = NULL;
     }
   GNUNET_assert (sock->sched != NULL);
-  GNUNET_SCHEDULER_add_now (sock->sched,
-                           &destroy_continuation, sock);
+  GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sock->destroy_task);
+  sock->destroy_task 
+    = GNUNET_SCHEDULER_add_now (sock->sched,
+                               &destroy_continuation, sock);
 }
 
 




reply via email to

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