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/testbed/test_testbed_api_controllerlink.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/testbed/test_testbed_api_controllerlink.c')
-rw-r--r-- | src/testbed/test_testbed_api_controllerlink.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/testbed/test_testbed_api_controllerlink.c b/src/testbed/test_testbed_api_controllerlink.c index 471ab3a94..2834ea713 100644 --- a/src/testbed/test_testbed_api_controllerlink.c +++ b/src/testbed/test_testbed_api_controllerlink.c | |||
@@ -244,7 +244,7 @@ static struct GNUNET_CONFIGURATION_Handle *cfg3; | |||
244 | /** | 244 | /** |
245 | * Abort task | 245 | * Abort task |
246 | */ | 246 | */ |
247 | static GNUNET_SCHEDULER_TaskIdentifier abort_task; | 247 | static struct GNUNET_SCHEDULER_Task * abort_task; |
248 | 248 | ||
249 | /** | 249 | /** |
250 | * Operation handle for linking controllers | 250 | * Operation handle for linking controllers |
@@ -279,7 +279,7 @@ struct GNUNET_TESTBED_HostHabitableCheckHandle *hc_handle; | |||
279 | /** | 279 | /** |
280 | * The task handle for the delay task | 280 | * The task handle for the delay task |
281 | */ | 281 | */ |
282 | GNUNET_SCHEDULER_TaskIdentifier delay_task_id; | 282 | struct GNUNET_SCHEDULER_Task * delay_task_id; |
283 | 283 | ||
284 | /** | 284 | /** |
285 | * Event mask | 285 | * Event mask |
@@ -297,9 +297,9 @@ static enum Stage result; | |||
297 | #define FAIL_TEST(cond) do { \ | 297 | #define FAIL_TEST(cond) do { \ |
298 | if (!(cond)) { \ | 298 | if (!(cond)) { \ |
299 | GNUNET_break(0); \ | 299 | GNUNET_break(0); \ |
300 | if (GNUNET_SCHEDULER_NO_TASK != abort_task) \ | 300 | if (NULL != abort_task) \ |
301 | GNUNET_SCHEDULER_cancel (abort_task); \ | 301 | GNUNET_SCHEDULER_cancel (abort_task); \ |
302 | abort_task = GNUNET_SCHEDULER_NO_TASK; \ | 302 | abort_task = NULL; \ |
303 | GNUNET_SCHEDULER_add_now (do_shutdown, NULL); \ | 303 | GNUNET_SCHEDULER_add_now (do_shutdown, NULL); \ |
304 | return; \ | 304 | return; \ |
305 | } \ | 305 | } \ |
@@ -315,12 +315,12 @@ static enum Stage result; | |||
315 | static void | 315 | static void |
316 | do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 316 | do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
317 | { | 317 | { |
318 | if (GNUNET_SCHEDULER_NO_TASK != abort_task) | 318 | if (NULL != abort_task) |
319 | GNUNET_SCHEDULER_cancel (abort_task); | 319 | GNUNET_SCHEDULER_cancel (abort_task); |
320 | if (GNUNET_SCHEDULER_NO_TASK != delay_task_id) | 320 | if (NULL != delay_task_id) |
321 | { | 321 | { |
322 | GNUNET_SCHEDULER_cancel (delay_task_id); | 322 | GNUNET_SCHEDULER_cancel (delay_task_id); |
323 | delay_task_id = GNUNET_SCHEDULER_NO_TASK; | 323 | delay_task_id = NULL; |
324 | } | 324 | } |
325 | if (NULL != hc_handle) | 325 | if (NULL != hc_handle) |
326 | GNUNET_TESTBED_is_host_habitable_cancel (hc_handle); | 326 | GNUNET_TESTBED_is_host_habitable_cancel (hc_handle); |
@@ -355,7 +355,7 @@ static void | |||
355 | do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 355 | do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
356 | { | 356 | { |
357 | LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n"); | 357 | LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n"); |
358 | abort_task = GNUNET_SCHEDULER_NO_TASK; | 358 | abort_task = NULL; |
359 | do_shutdown (cls, tc); | 359 | do_shutdown (cls, tc); |
360 | } | 360 | } |
361 | 361 | ||
@@ -369,7 +369,7 @@ do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
369 | static void | 369 | static void |
370 | do_abort_now (void *cls) | 370 | do_abort_now (void *cls) |
371 | { | 371 | { |
372 | if (GNUNET_SCHEDULER_NO_TASK != abort_task) | 372 | if (NULL != abort_task) |
373 | GNUNET_SCHEDULER_cancel (abort_task); | 373 | GNUNET_SCHEDULER_cancel (abort_task); |
374 | abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL); | 374 | abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL); |
375 | } | 375 | } |
@@ -394,7 +394,7 @@ registration_cont (void *cls, const char *emsg); | |||
394 | static void | 394 | static void |
395 | delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 395 | delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
396 | { | 396 | { |
397 | delay_task_id = GNUNET_SCHEDULER_NO_TASK; | 397 | delay_task_id = NULL; |
398 | switch (result) | 398 | switch (result) |
399 | { | 399 | { |
400 | case SLAVE2_PEER_CREATE_SUCCESS: | 400 | case SLAVE2_PEER_CREATE_SUCCESS: |
@@ -756,7 +756,7 @@ host_habitable_cb (void *cls, const struct GNUNET_TESTBED_Host *_host, | |||
756 | "to use password less SSH logins to localhost.\n" | 756 | "to use password less SSH logins to localhost.\n" |
757 | "Skipping test\n"); | 757 | "Skipping test\n"); |
758 | GNUNET_SCHEDULER_cancel (abort_task); | 758 | GNUNET_SCHEDULER_cancel (abort_task); |
759 | abort_task = GNUNET_SCHEDULER_NO_TASK; | 759 | abort_task = NULL; |
760 | (void) GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); | 760 | (void) GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); |
761 | result = SKIP; | 761 | result = SKIP; |
762 | return; | 762 | return; |