aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/gnunet-testbed-profiler.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/gnunet-testbed-profiler.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/gnunet-testbed-profiler.c')
-rw-r--r--src/testbed/gnunet-testbed-profiler.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/testbed/gnunet-testbed-profiler.c b/src/testbed/gnunet-testbed-profiler.c
index 17f1d6ba9..c45a6b0e2 100644
--- a/src/testbed/gnunet-testbed-profiler.c
+++ b/src/testbed/gnunet-testbed-profiler.c
@@ -55,12 +55,12 @@ static char *hosts_file;
55/** 55/**
56 * Abort task identifier 56 * Abort task identifier
57 */ 57 */
58static GNUNET_SCHEDULER_TaskIdentifier abort_task; 58static struct GNUNET_SCHEDULER_Task * abort_task;
59 59
60/** 60/**
61 * Shutdown task identifier 61 * Shutdown task identifier
62 */ 62 */
63static GNUNET_SCHEDULER_TaskIdentifier shutdown_task; 63static struct GNUNET_SCHEDULER_Task * shutdown_task;
64 64
65/** 65/**
66 * Global event mask for all testbed events 66 * Global event mask for all testbed events
@@ -112,11 +112,11 @@ static int noninteractive;
112static void 112static void
113do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 113do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
114{ 114{
115 shutdown_task = GNUNET_SCHEDULER_NO_TASK; 115 shutdown_task = NULL;
116 if (GNUNET_SCHEDULER_NO_TASK != abort_task) 116 if (NULL != abort_task)
117 { 117 {
118 GNUNET_SCHEDULER_cancel (abort_task); 118 GNUNET_SCHEDULER_cancel (abort_task);
119 abort_task = GNUNET_SCHEDULER_NO_TASK; 119 abort_task = NULL;
120 } 120 }
121 if (NULL != cfg) 121 if (NULL != cfg)
122 { 122 {
@@ -137,9 +137,9 @@ static void
137do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 137do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
138{ 138{
139 LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n"); 139 LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n");
140 abort_task = GNUNET_SCHEDULER_NO_TASK; 140 abort_task = NULL;
141 result = GNUNET_SYSERR; 141 result = GNUNET_SYSERR;
142 if (GNUNET_SCHEDULER_NO_TASK != shutdown_task) 142 if (NULL != shutdown_task)
143 GNUNET_SCHEDULER_cancel (shutdown_task); 143 GNUNET_SCHEDULER_cancel (shutdown_task);
144 shutdown_task = GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); 144 shutdown_task = GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
145} 145}
@@ -185,7 +185,7 @@ controller_event_cb (void *cls,
185 { 185 {
186 printf ("\nAborting due to very high failure rate\n"); 186 printf ("\nAborting due to very high failure rate\n");
187 print_overlay_links_summary (); 187 print_overlay_links_summary ();
188 if (GNUNET_SCHEDULER_NO_TASK != abort_task) 188 if (NULL != abort_task)
189 GNUNET_SCHEDULER_cancel (abort_task); 189 GNUNET_SCHEDULER_cancel (abort_task);
190 abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL); 190 abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL);
191 return; 191 return;
@@ -233,7 +233,7 @@ test_run (void *cls,
233 if (noninteractive) 233 if (noninteractive)
234 { 234 {
235 GNUNET_SCHEDULER_cancel (abort_task); 235 GNUNET_SCHEDULER_cancel (abort_task);
236 abort_task = GNUNET_SCHEDULER_NO_TASK; 236 abort_task = NULL;
237 shutdown_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 237 shutdown_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
238 &do_shutdown, NULL); 238 &do_shutdown, NULL);
239 return; 239 return;