From be8464c9e6dbc81c7bd002bd5657611628a1357d Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 16 Mar 2016 21:48:33 +0000 Subject: lock solver during shutdown to terminate faster --- src/ats/gnunet-service-ats.c | 2 ++ src/ats/gnunet-service-ats_addresses.c | 2 ++ src/ats/gnunet-service-ats_connectivity.c | 2 ++ 3 files changed, 6 insertions(+) (limited to 'src') diff --git a/src/ats/gnunet-service-ats.c b/src/ats/gnunet-service-ats.c index 2906e6046..11db62e2d 100644 --- a/src/ats/gnunet-service-ats.c +++ b/src/ats/gnunet-service-ats.c @@ -130,6 +130,8 @@ static void cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "ATS shutdown initiated\n"); GAS_connectivity_done (); GAS_addresses_done (); GAS_plugin_done (); diff --git a/src/ats/gnunet-service-ats_addresses.c b/src/ats/gnunet-service-ats_addresses.c index a49a002e9..d8f467688 100644 --- a/src/ats/gnunet-service-ats_addresses.c +++ b/src/ats/gnunet-service-ats_addresses.c @@ -405,7 +405,9 @@ GAS_addresses_done () { GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Shutting down addresses\n"); + GAS_plugin_solver_lock (); GAS_addresses_destroy_all (); + GAS_plugin_solver_unlock (); GNUNET_CONTAINER_multipeermap_destroy (GSA_addresses); GSA_addresses = NULL; } diff --git a/src/ats/gnunet-service-ats_connectivity.c b/src/ats/gnunet-service-ats_connectivity.c index 38c953c9c..2cf434c70 100644 --- a/src/ats/gnunet-service-ats_connectivity.c +++ b/src/ats/gnunet-service-ats_connectivity.c @@ -217,9 +217,11 @@ free_request (void *cls, void GAS_connectivity_done () { + GAS_plugin_solver_lock (); GNUNET_CONTAINER_multipeermap_iterate (connection_requests, &free_request, NULL); + GAS_plugin_solver_unlock (); GNUNET_CONTAINER_multipeermap_destroy (connection_requests); connection_requests = NULL; } -- cgit v1.2.3