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/transport/test_transport_address_switch.c | |
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/transport/test_transport_address_switch.c')
-rw-r--r-- | src/transport/test_transport_address_switch.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/transport/test_transport_address_switch.c b/src/transport/test_transport_address_switch.c index fcbd798d0..10815c7ab 100644 --- a/src/transport/test_transport_address_switch.c +++ b/src/transport/test_transport_address_switch.c | |||
@@ -67,11 +67,11 @@ GNUNET_NETWORK_STRUCT_END | |||
67 | #define DURATION GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30) | 67 | #define DURATION GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30) |
68 | #define DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) | 68 | #define DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) |
69 | 69 | ||
70 | static GNUNET_SCHEDULER_TaskIdentifier die_task; | 70 | static struct GNUNET_SCHEDULER_Task * die_task; |
71 | 71 | ||
72 | static GNUNET_SCHEDULER_TaskIdentifier delayed_end_task; | 72 | static struct GNUNET_SCHEDULER_Task * delayed_end_task; |
73 | 73 | ||
74 | static GNUNET_SCHEDULER_TaskIdentifier measure_task; | 74 | static struct GNUNET_SCHEDULER_Task * measure_task; |
75 | 75 | ||
76 | struct PeerContext *p1; | 76 | struct PeerContext *p1; |
77 | char *cfg_file_p1; | 77 | char *cfg_file_p1; |
@@ -142,7 +142,7 @@ stat_start_attempt_cb (void *cls, const char *subsystem, const char *name, | |||
142 | else | 142 | else |
143 | return GNUNET_OK; | 143 | return GNUNET_OK; |
144 | 144 | ||
145 | if (GNUNET_SCHEDULER_NO_TASK == delayed_end_task) | 145 | if (NULL == delayed_end_task) |
146 | delayed_end_task = GNUNET_SCHEDULER_add_delayed (DELAY, &end, NULL ); | 146 | delayed_end_task = GNUNET_SCHEDULER_add_delayed (DELAY, &end, NULL ); |
147 | return GNUNET_OK; | 147 | return GNUNET_OK; |
148 | } | 148 | } |
@@ -207,22 +207,22 @@ stat_addresses_available (void *cls, const char *subsystem, const char *name, | |||
207 | static void | 207 | static void |
208 | clean_up () | 208 | clean_up () |
209 | { | 209 | { |
210 | if (measure_task != GNUNET_SCHEDULER_NO_TASK ) | 210 | if (measure_task != NULL ) |
211 | { | 211 | { |
212 | GNUNET_SCHEDULER_cancel (measure_task); | 212 | GNUNET_SCHEDULER_cancel (measure_task); |
213 | measure_task = GNUNET_SCHEDULER_NO_TASK; | 213 | measure_task = NULL; |
214 | } | 214 | } |
215 | 215 | ||
216 | if (delayed_end_task != GNUNET_SCHEDULER_NO_TASK ) | 216 | if (delayed_end_task != NULL ) |
217 | { | 217 | { |
218 | GNUNET_SCHEDULER_cancel (delayed_end_task); | 218 | GNUNET_SCHEDULER_cancel (delayed_end_task); |
219 | delayed_end_task = GNUNET_SCHEDULER_NO_TASK; | 219 | delayed_end_task = NULL; |
220 | } | 220 | } |
221 | 221 | ||
222 | if (die_task != GNUNET_SCHEDULER_NO_TASK ) | 222 | if (die_task != NULL ) |
223 | { | 223 | { |
224 | GNUNET_SCHEDULER_cancel (die_task); | 224 | GNUNET_SCHEDULER_cancel (die_task); |
225 | die_task = GNUNET_SCHEDULER_NO_TASK; | 225 | die_task = NULL; |
226 | } | 226 | } |
227 | 227 | ||
228 | if (NULL != p1_stat) | 228 | if (NULL != p1_stat) |
@@ -270,10 +270,10 @@ clean_up () | |||
270 | p2_stat = NULL; | 270 | p2_stat = NULL; |
271 | } | 271 | } |
272 | 272 | ||
273 | if (die_task != GNUNET_SCHEDULER_NO_TASK ) | 273 | if (die_task != NULL ) |
274 | { | 274 | { |
275 | GNUNET_SCHEDULER_cancel (die_task); | 275 | GNUNET_SCHEDULER_cancel (die_task); |
276 | die_task = GNUNET_SCHEDULER_NO_TASK; | 276 | die_task = NULL; |
277 | } | 277 | } |
278 | 278 | ||
279 | if (th != NULL ) | 279 | if (th != NULL ) |
@@ -308,7 +308,7 @@ end () | |||
308 | int result = 0; | 308 | int result = 0; |
309 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); | 309 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); |
310 | 310 | ||
311 | delayed_end_task = GNUNET_SCHEDULER_NO_TASK; | 311 | delayed_end_task = NULL; |
312 | FPRINTF (stderr, "\n"); | 312 | FPRINTF (stderr, "\n"); |
313 | if (p1_switch_attempts > 0) | 313 | if (p1_switch_attempts > 0) |
314 | { | 314 | { |
@@ -365,7 +365,7 @@ end () | |||
365 | static void | 365 | static void |
366 | end_badly () | 366 | end_badly () |
367 | { | 367 | { |
368 | die_task = GNUNET_SCHEDULER_NO_TASK; | 368 | die_task = NULL; |
369 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); | 369 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); |
370 | 370 | ||
371 | FPRINTF (stderr, "Peer 1 had %u addresses available, but did not try to switch\n", | 371 | FPRINTF (stderr, "Peer 1 had %u addresses available, but did not try to switch\n", |
@@ -432,7 +432,7 @@ notify_ready (void *cls, size_t size, void *buf) | |||
432 | { | 432 | { |
433 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 433 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, |
434 | "Timeout occurred while waiting for transmit_ready for message\n"); | 434 | "Timeout occurred while waiting for transmit_ready for message\n"); |
435 | if (GNUNET_SCHEDULER_NO_TASK != die_task) | 435 | if (NULL != die_task) |
436 | GNUNET_SCHEDULER_cancel (die_task); | 436 | GNUNET_SCHEDULER_cancel (die_task); |
437 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL ); | 437 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL ); |
438 | res = 1; | 438 | res = 1; |
@@ -534,7 +534,7 @@ measure (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
534 | { | 534 | { |
535 | static int counter; | 535 | static int counter; |
536 | 536 | ||
537 | measure_task = GNUNET_SCHEDULER_NO_TASK; | 537 | measure_task = NULL; |
538 | 538 | ||
539 | counter++; | 539 | counter++; |
540 | if ((DURATION.rel_value_us / 1000 / 1000LL) < counter) | 540 | if ((DURATION.rel_value_us / 1000 / 1000LL) < counter) |
@@ -608,7 +608,7 @@ run (void *cls, char * const *args, const char *cfgfile, | |||
608 | if ((p1 == NULL )|| (p2 == NULL)) | 608 | if ((p1 == NULL )|| (p2 == NULL)) |
609 | { | 609 | { |
610 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); | 610 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); |
611 | if (die_task != GNUNET_SCHEDULER_NO_TASK) | 611 | if (die_task != NULL) |
612 | GNUNET_SCHEDULER_cancel (die_task); | 612 | GNUNET_SCHEDULER_cancel (die_task); |
613 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 613 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
614 | return; | 614 | return; |
@@ -657,7 +657,7 @@ run (void *cls, char * const *args, const char *cfgfile, | |||
657 | if ((p1_stat == NULL )|| (p2_stat == NULL)) | 657 | if ((p1_stat == NULL )|| (p2_stat == NULL)) |
658 | { | 658 | { |
659 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not create statistics for peers!\n"); | 659 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not create statistics for peers!\n"); |
660 | if (die_task != GNUNET_SCHEDULER_NO_TASK) | 660 | if (die_task != NULL) |
661 | GNUNET_SCHEDULER_cancel (die_task); | 661 | GNUNET_SCHEDULER_cancel (die_task); |
662 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 662 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
663 | return; | 663 | return; |