[Top][All Lists]
[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);
/**
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25396 - gnunet/src/ats,
gnunet <=