aboutsummaryrefslogtreecommitdiff
path: root/src/core/test_core_quota_compliance.c
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/core/test_core_quota_compliance.c
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/core/test_core_quota_compliance.c')
-rw-r--r--src/core/test_core_quota_compliance.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/core/test_core_quota_compliance.c b/src/core/test_core_quota_compliance.c
index bf9197f0c..a20a6c7d0 100644
--- a/src/core/test_core_quota_compliance.c
+++ b/src/core/test_core_quota_compliance.c
@@ -62,11 +62,11 @@ static unsigned long long total_bytes_recv;
62 62
63static struct GNUNET_TIME_Absolute start_time; 63static struct GNUNET_TIME_Absolute start_time;
64 64
65static GNUNET_SCHEDULER_TaskIdentifier err_task; 65static struct GNUNET_SCHEDULER_Task * err_task;
66 66
67static GNUNET_SCHEDULER_TaskIdentifier measure_task; 67static struct GNUNET_SCHEDULER_Task * measure_task;
68 68
69static GNUNET_SCHEDULER_TaskIdentifier connect_task; 69static struct GNUNET_SCHEDULER_Task * connect_task;
70 70
71 71
72struct PeerContext 72struct PeerContext
@@ -118,7 +118,7 @@ terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
118{ 118{
119 struct GNUNET_CORE_Handle *ch; 119 struct GNUNET_CORE_Handle *ch;
120 120
121 err_task = GNUNET_SCHEDULER_NO_TASK; 121 err_task = NULL;
122 GNUNET_STATISTICS_destroy (p1.stats, GNUNET_NO); 122 GNUNET_STATISTICS_destroy (p1.stats, GNUNET_NO);
123 GNUNET_STATISTICS_destroy (p2.stats, GNUNET_NO); 123 GNUNET_STATISTICS_destroy (p2.stats, GNUNET_NO);
124 GNUNET_TRANSPORT_get_hello_cancel (p2.ghh); 124 GNUNET_TRANSPORT_get_hello_cancel (p2.ghh);
@@ -128,10 +128,10 @@ terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
128 GNUNET_CORE_notify_transmit_ready_cancel (p1.nth); 128 GNUNET_CORE_notify_transmit_ready_cancel (p1.nth);
129 p1.nth = NULL; 129 p1.nth = NULL;
130 } 130 }
131 if (connect_task != GNUNET_SCHEDULER_NO_TASK) 131 if (connect_task != NULL)
132 { 132 {
133 GNUNET_SCHEDULER_cancel (connect_task); 133 GNUNET_SCHEDULER_cancel (connect_task);
134 connect_task = GNUNET_SCHEDULER_NO_TASK; 134 connect_task = NULL;
135 } 135 }
136 ch = p1.ch; 136 ch = p1.ch;
137 p1.ch = NULL; 137 p1.ch = NULL;
@@ -151,7 +151,7 @@ terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
151static void 151static void
152terminate_task_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 152terminate_task_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
153{ 153{
154 err_task = GNUNET_SCHEDULER_NO_TASK; 154 err_task = NULL;
155 155
156 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) 156 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
157 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Testcase failed!\n"); 157 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Testcase failed!\n");
@@ -161,12 +161,12 @@ terminate_task_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
161 GNUNET_CORE_notify_transmit_ready_cancel (p1.nth); 161 GNUNET_CORE_notify_transmit_ready_cancel (p1.nth);
162 p1.nth = NULL; 162 p1.nth = NULL;
163 } 163 }
164 if (measure_task != GNUNET_SCHEDULER_NO_TASK) 164 if (measure_task != NULL)
165 GNUNET_SCHEDULER_cancel (measure_task); 165 GNUNET_SCHEDULER_cancel (measure_task);
166 if (connect_task != GNUNET_SCHEDULER_NO_TASK) 166 if (connect_task != NULL)
167 { 167 {
168 GNUNET_SCHEDULER_cancel (connect_task); 168 GNUNET_SCHEDULER_cancel (connect_task);
169 connect_task = GNUNET_SCHEDULER_NO_TASK; 169 connect_task = NULL;
170 } 170 }
171 171
172 GNUNET_TRANSPORT_get_hello_cancel (p1.ghh); 172 GNUNET_TRANSPORT_get_hello_cancel (p1.ghh);
@@ -231,7 +231,7 @@ measurement_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
231 unsigned long long quota_delta; 231 unsigned long long quota_delta;
232 enum GNUNET_ErrorType kind = GNUNET_ERROR_TYPE_DEBUG; 232 enum GNUNET_ErrorType kind = GNUNET_ERROR_TYPE_DEBUG;
233 233
234 measure_task = GNUNET_SCHEDULER_NO_TASK; 234 measure_task = NULL;
235 FPRINTF (stdout, "%s", "\n"); 235 FPRINTF (stdout, "%s", "\n");
236 running = GNUNET_NO; 236 running = GNUNET_NO;
237 237
@@ -381,7 +381,7 @@ connect_notify (void *cls, const struct GNUNET_PeerIdentity *peer)
381 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 381 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
382 "Asking core (1) for transmission to peer `%4s'\n", 382 "Asking core (1) for transmission to peer `%4s'\n",
383 GNUNET_i2s (&p2.id)); 383 GNUNET_i2s (&p2.id));
384 if (err_task != GNUNET_SCHEDULER_NO_TASK) 384 if (err_task != NULL)
385 GNUNET_SCHEDULER_cancel (err_task); 385 GNUNET_SCHEDULER_cancel (err_task);
386 err_task = 386 err_task =
387 GNUNET_SCHEDULER_add_delayed (TIMEOUT, &terminate_task_error, NULL); 387 GNUNET_SCHEDULER_add_delayed (TIMEOUT, &terminate_task_error, NULL);
@@ -410,12 +410,12 @@ disconnect_notify (void *cls, const struct GNUNET_PeerIdentity *peer)
410 if (0 == memcmp (&pc->id, peer, sizeof (struct GNUNET_PeerIdentity))) 410 if (0 == memcmp (&pc->id, peer, sizeof (struct GNUNET_PeerIdentity)))
411 return; /* loopback */ 411 return; /* loopback */
412 pc->connect_status = 0; 412 pc->connect_status = 0;
413 if (GNUNET_SCHEDULER_NO_TASK != measure_task) 413 if (NULL != measure_task)
414 { 414 {
415 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 415 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
416 "Measurement aborted due to disconnect!\n"); 416 "Measurement aborted due to disconnect!\n");
417 GNUNET_SCHEDULER_cancel (measure_task); 417 GNUNET_SCHEDULER_cancel (measure_task);
418 measure_task = GNUNET_SCHEDULER_NO_TASK; 418 measure_task = NULL;
419 } 419 }
420 if (pc->nth != NULL) 420 if (pc->nth != NULL)
421 { 421 {