diff options
author | Christian Grothoff <christian@grothoff.org> | 2014-12-24 01:10:47 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2014-12-24 01:10:47 +0000 |
commit | f1f603c7d0b3f03dca46a4f313472288eb080eb1 (patch) | |
tree | 3a29966b02dfb83e0a8a8d5c42b3116380209fb0 /src/namecache | |
parent | 53cd5b8eda2fa8db86b0907a62a39598981d008a (diff) | |
download | gnunet-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.c | 8 | ||||
-rw-r--r-- | src/namecache/test_namecache_api_cache_block.c | 8 |
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 | ||
37 | static struct GNUNET_NAMECACHE_Handle *nsh; | 37 | static struct GNUNET_NAMECACHE_Handle *nsh; |
38 | 38 | ||
39 | static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; | 39 | static struct GNUNET_SCHEDULER_Task * endbadly_task; |
40 | 40 | ||
41 | static struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey; | 41 | static 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; |