aboutsummaryrefslogtreecommitdiff
path: root/src/psycstore
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/psycstore
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/psycstore')
-rw-r--r--src/psycstore/psycstore_api.c10
-rw-r--r--src/psycstore/test_psycstore.c6
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);
200static void 200static void
201reschedule_connect (struct GNUNET_PSYCSTORE_Handle *h) 201reschedule_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
582GNUNET_PSYCSTORE_disconnect (struct GNUNET_PSYCSTORE_Handle *h) 582GNUNET_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 */
57static GNUNET_SCHEDULER_TaskIdentifier end_badly_task; 57static struct GNUNET_SCHEDULER_Task * end_badly_task;
58 58
59static struct GNUNET_CRYPTO_EddsaPrivateKey *channel_key; 59static struct GNUNET_CRYPTO_EddsaPrivateKey *channel_key;
60static struct GNUNET_CRYPTO_EcdsaPrivateKey *slave_key; 60static struct GNUNET_CRYPTO_EcdsaPrivateKey *slave_key;
@@ -143,10 +143,10 @@ end_normally (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
143static void 143static void
144end () 144end ()
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);