aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/test_testbed_api_controllerlink.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/testbed/test_testbed_api_controllerlink.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/testbed/test_testbed_api_controllerlink.c')
-rw-r--r--src/testbed/test_testbed_api_controllerlink.c22
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 */
247static GNUNET_SCHEDULER_TaskIdentifier abort_task; 247static 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 */
282GNUNET_SCHEDULER_TaskIdentifier delay_task_id; 282struct 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;
315static void 315static void
316do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 316do_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
355do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 355do_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)
369static void 369static void
370do_abort_now (void *cls) 370do_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);
394static void 394static void
395delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 395delay_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;