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/psycstore | |
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/psycstore')
-rw-r--r-- | src/psycstore/psycstore_api.c | 10 | ||||
-rw-r--r-- | src/psycstore/test_psycstore.c | 6 |
2 files changed, 8 insertions, 8 deletions
diff --git a/src/psycstore/psycstore_api.c b/src/psycstore/psycstore_api.c index 9ef1fb61a..7b71c9d3a 100644 --- a/src/psycstore/psycstore_api.c +++ b/src/psycstore/psycstore_api.c | |||
@@ -131,7 +131,7 @@ struct GNUNET_PSYCSTORE_Handle | |||
131 | /** | 131 | /** |
132 | * Task doing exponential back-off trying to reconnect. | 132 | * Task doing exponential back-off trying to reconnect. |
133 | */ | 133 | */ |
134 | GNUNET_SCHEDULER_TaskIdentifier reconnect_task; | 134 | struct GNUNET_SCHEDULER_Task * reconnect_task; |
135 | 135 | ||
136 | /** | 136 | /** |
137 | * Time for next connect retry. | 137 | * Time for next connect retry. |
@@ -200,7 +200,7 @@ reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc); | |||
200 | static void | 200 | static void |
201 | reschedule_connect (struct GNUNET_PSYCSTORE_Handle *h) | 201 | reschedule_connect (struct GNUNET_PSYCSTORE_Handle *h) |
202 | { | 202 | { |
203 | GNUNET_assert (h->reconnect_task == GNUNET_SCHEDULER_NO_TASK); | 203 | GNUNET_assert (h->reconnect_task == NULL); |
204 | 204 | ||
205 | if (NULL != h->th) | 205 | if (NULL != h->th) |
206 | { | 206 | { |
@@ -545,7 +545,7 @@ reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
545 | { | 545 | { |
546 | struct GNUNET_PSYCSTORE_Handle *h = cls; | 546 | struct GNUNET_PSYCSTORE_Handle *h = cls; |
547 | 547 | ||
548 | h->reconnect_task = GNUNET_SCHEDULER_NO_TASK; | 548 | h->reconnect_task = NULL; |
549 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 549 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
550 | "Connecting to PSYCstore service.\n"); | 550 | "Connecting to PSYCstore service.\n"); |
551 | GNUNET_assert (NULL == h->client); | 551 | GNUNET_assert (NULL == h->client); |
@@ -582,10 +582,10 @@ void | |||
582 | GNUNET_PSYCSTORE_disconnect (struct GNUNET_PSYCSTORE_Handle *h) | 582 | GNUNET_PSYCSTORE_disconnect (struct GNUNET_PSYCSTORE_Handle *h) |
583 | { | 583 | { |
584 | GNUNET_assert (NULL != h); | 584 | GNUNET_assert (NULL != h); |
585 | if (h->reconnect_task != GNUNET_SCHEDULER_NO_TASK) | 585 | if (h->reconnect_task != NULL) |
586 | { | 586 | { |
587 | GNUNET_SCHEDULER_cancel (h->reconnect_task); | 587 | GNUNET_SCHEDULER_cancel (h->reconnect_task); |
588 | h->reconnect_task = GNUNET_SCHEDULER_NO_TASK; | 588 | h->reconnect_task = NULL; |
589 | } | 589 | } |
590 | if (NULL != h->th) | 590 | if (NULL != h->th) |
591 | { | 591 | { |
diff --git a/src/psycstore/test_psycstore.c b/src/psycstore/test_psycstore.c index 125e64f58..8ece3c1b7 100644 --- a/src/psycstore/test_psycstore.c +++ b/src/psycstore/test_psycstore.c | |||
@@ -54,7 +54,7 @@ static struct GNUNET_PSYCSTORE_OperationHandle *op; | |||
54 | /** | 54 | /** |
55 | * Handle for task for timeout termination. | 55 | * Handle for task for timeout termination. |
56 | */ | 56 | */ |
57 | static GNUNET_SCHEDULER_TaskIdentifier end_badly_task; | 57 | static struct GNUNET_SCHEDULER_Task * end_badly_task; |
58 | 58 | ||
59 | static struct GNUNET_CRYPTO_EddsaPrivateKey *channel_key; | 59 | static struct GNUNET_CRYPTO_EddsaPrivateKey *channel_key; |
60 | static struct GNUNET_CRYPTO_EcdsaPrivateKey *slave_key; | 60 | static struct GNUNET_CRYPTO_EcdsaPrivateKey *slave_key; |
@@ -143,10 +143,10 @@ end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
143 | static void | 143 | static void |
144 | end () | 144 | end () |
145 | { | 145 | { |
146 | if (end_badly_task != GNUNET_SCHEDULER_NO_TASK) | 146 | if (end_badly_task != NULL) |
147 | { | 147 | { |
148 | GNUNET_SCHEDULER_cancel (end_badly_task); | 148 | GNUNET_SCHEDULER_cancel (end_badly_task); |
149 | end_badly_task = GNUNET_SCHEDULER_NO_TASK; | 149 | end_badly_task = NULL; |
150 | } | 150 | } |
151 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MILLISECONDS, | 151 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MILLISECONDS, |
152 | &end_normally, NULL); | 152 | &end_normally, NULL); |