aboutsummaryrefslogtreecommitdiff
path: root/src/namecache
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2014-12-24 01:10:47 +0000
committerChristian Grothoff <christian@grothoff.org>2014-12-24 01:10:47 +0000
commitf1f603c7d0b3f03dca46a4f313472288eb080eb1 (patch)
tree3a29966b02dfb83e0a8a8d5c42b3116380209fb0 /src/namecache
parent53cd5b8eda2fa8db86b0907a62a39598981d008a (diff)
downloadgnunet-f1f603c7d0b3f03dca46a4f313472288eb080eb1.tar.gz
gnunet-f1f603c7d0b3f03dca46a4f313472288eb080eb1.zip
making GNUNET_SCHEDULER_cancel() perform in O(1) instead of O(n) to help or even fully address #3247
Diffstat (limited to 'src/namecache')
-rw-r--r--src/namecache/namecache_api.c8
-rw-r--r--src/namecache/test_namecache_api_cache_block.c8
2 files changed, 8 insertions, 8 deletions
diff --git a/src/namecache/namecache_api.c b/src/namecache/namecache_api.c
index 26d80f4bf..9f979d992 100644
--- a/src/namecache/namecache_api.c
+++ b/src/namecache/namecache_api.c
@@ -159,7 +159,7 @@ struct GNUNET_NAMECACHE_Handle
159 /** 159 /**
160 * Reconnect task 160 * Reconnect task
161 */ 161 */
162 GNUNET_SCHEDULER_TaskIdentifier reconnect_task; 162 struct GNUNET_SCHEDULER_Task * reconnect_task;
163 163
164 /** 164 /**
165 * Delay introduced before we reconnect. 165 * Delay introduced before we reconnect.
@@ -503,7 +503,7 @@ reconnect_task (void *cls,
503{ 503{
504 struct GNUNET_NAMECACHE_Handle *h = cls; 504 struct GNUNET_NAMECACHE_Handle *h = cls;
505 505
506 h->reconnect_task = GNUNET_SCHEDULER_NO_TASK; 506 h->reconnect_task = NULL;
507 reconnect (h); 507 reconnect (h);
508} 508}
509 509
@@ -601,10 +601,10 @@ GNUNET_NAMECACHE_disconnect (struct GNUNET_NAMECACHE_Handle *h)
601 GNUNET_CLIENT_disconnect (h->client); 601 GNUNET_CLIENT_disconnect (h->client);
602 h->client = NULL; 602 h->client = NULL;
603 } 603 }
604 if (GNUNET_SCHEDULER_NO_TASK != h->reconnect_task) 604 if (NULL != h->reconnect_task)
605 { 605 {
606 GNUNET_SCHEDULER_cancel (h->reconnect_task); 606 GNUNET_SCHEDULER_cancel (h->reconnect_task);
607 h->reconnect_task = GNUNET_SCHEDULER_NO_TASK; 607 h->reconnect_task = NULL;
608 } 608 }
609 GNUNET_free (h); 609 GNUNET_free (h);
610} 610}
diff --git a/src/namecache/test_namecache_api_cache_block.c b/src/namecache/test_namecache_api_cache_block.c
index ec3ddf0a9..b15dc9645 100644
--- a/src/namecache/test_namecache_api_cache_block.c
+++ b/src/namecache/test_namecache_api_cache_block.c
@@ -36,7 +36,7 @@
36 36
37static struct GNUNET_NAMECACHE_Handle *nsh; 37static struct GNUNET_NAMECACHE_Handle *nsh;
38 38
39static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; 39static struct GNUNET_SCHEDULER_Task * endbadly_task;
40 40
41static struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey; 41static struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey;
42 42
@@ -122,17 +122,17 @@ name_lookup_proc (void *cls,
122 122
123 GNUNET_assert (NULL != cls); 123 GNUNET_assert (NULL != cls);
124 124
125 if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) 125 if (endbadly_task != NULL)
126 { 126 {
127 GNUNET_SCHEDULER_cancel (endbadly_task); 127 GNUNET_SCHEDULER_cancel (endbadly_task);
128 endbadly_task = GNUNET_SCHEDULER_NO_TASK; 128 endbadly_task = NULL;
129 } 129 }
130 130
131 if (NULL == block) 131 if (NULL == block)
132 { 132 {
133 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 133 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
134 _("Namecache returned no block\n")); 134 _("Namecache returned no block\n"));
135 if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) 135 if (endbadly_task != NULL)
136 GNUNET_SCHEDULER_cancel (endbadly_task); 136 GNUNET_SCHEDULER_cancel (endbadly_task);
137 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); 137 endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL);
138 return; 138 return;