diff options
Diffstat (limited to 'src/peerstore/gnunet-service-peerstore.c')
-rw-r--r-- | src/peerstore/gnunet-service-peerstore.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/peerstore/gnunet-service-peerstore.c b/src/peerstore/gnunet-service-peerstore.c index b78276922..c410630c9 100644 --- a/src/peerstore/gnunet-service-peerstore.c +++ b/src/peerstore/gnunet-service-peerstore.c | |||
@@ -67,6 +67,8 @@ shutdown_task (void *cls, | |||
67 | GNUNET_free (db_lib_name); | 67 | GNUNET_free (db_lib_name); |
68 | db_lib_name = NULL; | 68 | db_lib_name = NULL; |
69 | } | 69 | } |
70 | |||
71 | GNUNET_SCHEDULER_shutdown(); | ||
70 | } | 72 | } |
71 | 73 | ||
72 | /** | 74 | /** |
@@ -78,6 +80,8 @@ cleanup_expired_records(void *cls, | |||
78 | { | 80 | { |
79 | int deleted; | 81 | int deleted; |
80 | 82 | ||
83 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
84 | return; | ||
81 | GNUNET_assert(NULL != db); | 85 | GNUNET_assert(NULL != db); |
82 | deleted = db->expire_records(db->cls, GNUNET_TIME_absolute_get()); | 86 | deleted = db->expire_records(db->cls, GNUNET_TIME_absolute_get()); |
83 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, "%d records expired.\n", deleted); | 87 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, "%d records expired.\n", deleted); |
@@ -266,7 +270,7 @@ run (void *cls, | |||
266 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Could not load database backend `%s'\n", db_lib_name); | 270 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Could not load database backend `%s'\n", db_lib_name); |
267 | else | 271 | else |
268 | { | 272 | { |
269 | cleanup_expired_records(NULL, NULL); | 273 | GNUNET_SCHEDULER_add_now(&cleanup_expired_records, NULL); |
270 | GNUNET_SERVER_add_handlers (server, handlers); | 274 | GNUNET_SERVER_add_handlers (server, handlers); |
271 | GNUNET_SERVER_disconnect_notify (server, | 275 | GNUNET_SERVER_disconnect_notify (server, |
272 | &handle_client_disconnect, | 276 | &handle_client_disconnect, |