gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r25396 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r25396 - gnunet/src/ats
Date: Tue, 11 Dec 2012 15:32:03 +0100

Author: wachs
Date: 2012-12-11 15:32:03 +0100 (Tue, 11 Dec 2012)
New Revision: 25396

Modified:
   gnunet/src/ats/gnunet-service-ats.c
   gnunet/src/ats/gnunet-service-ats_addresses.c
   gnunet/src/ats/gnunet-service-ats_addresses.h
   gnunet/src/ats/gnunet-service-ats_addresses_simplistic.c
   gnunet/src/ats/gnunet-service-ats_scheduling.c
   gnunet/src/ats/gnunet-service-ats_scheduling.h
Log:
changes

Modified: gnunet/src/ats/gnunet-service-ats.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats.c 2012-12-11 14:11:32 UTC (rev 25395)
+++ gnunet/src/ats/gnunet-service-ats.c 2012-12-11 14:32:03 UTC (rev 25396)
@@ -168,8 +168,9 @@
   GSA_stats = GNUNET_STATISTICS_create ("ats", cfg);
   GAS_reservations_init ();
   GAS_performance_init (server);
-  GAS_scheduling_init (server);
   GSA_addresses = GAS_addresses_init (cfg, GSA_stats);
+  GAS_scheduling_init (server, GSA_addresses);
+
   GNUNET_SERVER_disconnect_notify (server, &client_disconnect_handler, NULL);
   GNUNET_SERVER_add_handlers (server, handlers);
   GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &cleanup_task,

Modified: gnunet/src/ats/gnunet-service-ats_addresses.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.c       2012-12-11 14:11:32 UTC 
(rev 25395)
+++ gnunet/src/ats/gnunet-service-ats_addresses.c       2012-12-11 14:32:03 UTC 
(rev 25396)
@@ -1159,21 +1159,26 @@
 static int
 free_address_it (void *cls, const struct GNUNET_HashCode * key, void *value)
 {
+  struct GAS_Addresses_Handle *handle = cls;
   struct ATS_Address *aa = value;
-
+  handle->s_del (handle->solver, handle->addresses, aa);
   destroy_address (aa);
   return GNUNET_OK;
 }
 
 
 void
-GAS_addresses_destroy_all ()
+GAS_addresses_destroy_all (struct GAS_Addresses_Handle *handle)
 {
   if (GNUNET_NO == handle->running)
     return;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Received `%s'\n",
+              "DESTROY ALL");
+
   if (handle->addresses != NULL)
-    GNUNET_CONTAINER_multihashmap_iterate (handle->addresses, 
&free_address_it, NULL);
+    GNUNET_CONTAINER_multihashmap_iterate (handle->addresses, 
&free_address_it, handle);
 }
 
 
@@ -1188,7 +1193,7 @@
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Shutting down addresses\n");
   GNUNET_assert (NULL != handle);
-  GAS_addresses_destroy_all ();
+  GAS_addresses_destroy_all (handle);
   handle->running = GNUNET_NO;
   GNUNET_CONTAINER_multihashmap_destroy (handle->addresses);
   handle->addresses = NULL;

Modified: gnunet/src/ats/gnunet-service-ats_addresses.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.h       2012-12-11 14:11:32 UTC 
(rev 25395)
+++ gnunet/src/ats/gnunet-service-ats_addresses.h       2012-12-11 14:32:03 UTC 
(rev 25396)
@@ -260,7 +260,7 @@
 
 
 void
-GAS_addresses_destroy_all (void);
+GAS_addresses_destroy_all (struct GAS_Addresses_Handle *handle);
 
 
 /**

Modified: gnunet/src/ats/gnunet-service-ats_addresses_simplistic.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses_simplistic.c    2012-12-11 
14:11:32 UTC (rev 25395)
+++ gnunet/src/ats/gnunet-service-ats_addresses_simplistic.c    2012-12-11 
14:32:03 UTC (rev 25396)
@@ -61,6 +61,7 @@
  */
 struct GAS_SIMPLISTIC_Handle
 {
+  unsigned int total_addresses;
   unsigned int active_addresses;
 
   struct Network *network_entries;
@@ -153,6 +154,8 @@
   s->bw_changed = bw_changed_cb;
   s->networks = dest_length;
   s->network_entries = GNUNET_malloc (dest_length * sizeof (struct Network));
+  s->active_addresses = 0;
+  s->total_addresses = 0;
 
   for (c = 0; c < dest_length; c++)
   {
@@ -184,6 +187,24 @@
 
   for (c = 0; c < s->networks; c++)
   {
+      if (s->network_entries[c].total_addresses > 0)
+      {
+        LOG (GNUNET_ERROR_TYPE_ERROR,
+                    "Had %u addresses for network `%s' not deleted during 
shutdown\n",
+                    s->network_entries[c].total_addresses,
+                    s->network_entries[c].desc);
+        GNUNET_break (0);
+      }
+
+      if (s->network_entries[c].active_addresses > 0)
+      {
+        LOG (GNUNET_ERROR_TYPE_ERROR,
+                    "Had %u active addresses for network `%s' not deleted 
during shutdown\n",
+                    s->network_entries[c].active_addresses,
+                    s->network_entries[c].desc);
+        GNUNET_break (0);
+      }
+
       next = s->network_entries[c].head;
       while (NULL != (cur = next))
       {
@@ -195,6 +216,21 @@
 
       }
   }
+  if (s->total_addresses > 0)
+  {
+    LOG (GNUNET_ERROR_TYPE_ERROR,
+                "Had %u addresses not deleted during shutdown\n",
+                s->total_addresses);
+    GNUNET_break (0);
+  }
+  if (s->active_addresses > 0)
+  {
+    LOG (GNUNET_ERROR_TYPE_ERROR,
+                "Had %u active addresses not deleted during shutdown\n",
+                s->active_addresses);
+    GNUNET_break (0);
+  }
+
   GNUNET_free (s->network_entries);
   GNUNET_free (s);
 }
@@ -279,6 +315,7 @@
   aw->addr = address;
   GNUNET_CONTAINER_DLL_insert (cur->head, cur->tail, aw);
   cur->total_addresses ++;
+  s->total_addresses ++;
   aw->addr->solver_information = cur;
 
   LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -350,8 +387,16 @@
       address, GNUNET_i2s (&address->peer),
       net->desc, net->total_addresses, net->active_addresses);
 
-  GNUNET_break (0 < net->total_addresses);
-  net->total_addresses --;
+
+  if (net->total_addresses < 1)
+    GNUNET_break (0);
+  else
+    net->total_addresses --;
+  if (s->total_addresses < 1)
+    GNUNET_break (0);
+  else
+    s->total_addresses --;
+
   for (aw = net->head; NULL != aw; aw = aw->next)
   {
       if (aw->addr == address)
@@ -542,7 +587,7 @@
       prev->active = GNUNET_NO; /* No active any longer */
       prev->assigned_bw_in = GNUNET_BANDWIDTH_value_init (0); /* no bw 
assigned */
       prev->assigned_bw_out = GNUNET_BANDWIDTH_value_init (0); /* no bw 
assigned */
-      s->bw_changed (prev); /* notify about bw change, REQUIERED? */
+      s->bw_changed (prev); /* notify about bw change, REQUIRED? */
       if (net_prev->active_addresses < 1)
         GNUNET_break (0);
       else

Modified: gnunet/src/ats/gnunet-service-ats_scheduling.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_scheduling.c      2012-12-11 14:11:32 UTC 
(rev 25395)
+++ gnunet/src/ats/gnunet-service-ats_scheduling.c      2012-12-11 14:32:03 UTC 
(rev 25396)
@@ -43,6 +43,11 @@
 
 
 /**
+ * Handle to address subsystem
+ */
+static struct GAS_Addresses_Handle *address_handle;
+
+/**
  * Register a new scheduling client.
  *
  * @param client handle of the new client
@@ -74,7 +79,7 @@
 {
   if (my_client != client)
     return;
-  GAS_addresses_destroy_all ();
+  GAS_addresses_destroy_all (address_handle);
   my_client = NULL;
 }
 
@@ -481,8 +486,9 @@
  * @param server handle to our server
  */
 void
-GAS_scheduling_init (struct GNUNET_SERVER_Handle *server)
+GAS_scheduling_init (struct GNUNET_SERVER_Handle *server, struct 
GAS_Addresses_Handle *ah)
 {
+  address_handle = ah;
   nc = GNUNET_SERVER_notification_context_create (server, 128);
 }
 

Modified: gnunet/src/ats/gnunet-service-ats_scheduling.h
===================================================================
--- gnunet/src/ats/gnunet-service-ats_scheduling.h      2012-12-11 14:11:32 UTC 
(rev 25395)
+++ gnunet/src/ats/gnunet-service-ats_scheduling.h      2012-12-11 14:32:03 UTC 
(rev 25396)
@@ -169,7 +169,7 @@
  * @param server handle to our server
  */
 void
-GAS_scheduling_init (struct GNUNET_SERVER_Handle *server);
+GAS_scheduling_init (struct GNUNET_SERVER_Handle *server, struct 
GAS_Addresses_Handle *addresses);
 
 
 /**




reply via email to

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