aboutsummaryrefslogtreecommitdiff
path: root/src/transport/test_transport_api_timeout.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/transport/test_transport_api_timeout.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/transport/test_transport_api_timeout.c')
-rw-r--r--src/transport/test_transport_api_timeout.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/transport/test_transport_api_timeout.c b/src/transport/test_transport_api_timeout.c
index 01af9f81b..d243e8fbe 100644
--- a/src/transport/test_transport_api_timeout.c
+++ b/src/transport/test_transport_api_timeout.c
@@ -48,9 +48,9 @@ static char *test_name;
48 48
49static int ok; 49static int ok;
50 50
51static GNUNET_SCHEDULER_TaskIdentifier die_task; 51static struct GNUNET_SCHEDULER_Task * die_task;
52 52
53static GNUNET_SCHEDULER_TaskIdentifier timer_task; 53static struct GNUNET_SCHEDULER_Task * timer_task;
54 54
55static struct GNUNET_TRANSPORT_TESTING_handle *tth; 55static struct GNUNET_TRANSPORT_TESTING_handle *tth;
56 56
@@ -85,16 +85,16 @@ end ()
85{ 85{
86 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); 86 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n");
87 87
88 if (timer_task != GNUNET_SCHEDULER_NO_TASK) 88 if (timer_task != NULL)
89 { 89 {
90 GNUNET_SCHEDULER_cancel (timer_task); 90 GNUNET_SCHEDULER_cancel (timer_task);
91 timer_task = GNUNET_SCHEDULER_NO_TASK; 91 timer_task = NULL;
92 } 92 }
93 93
94 if (die_task != GNUNET_SCHEDULER_NO_TASK) 94 if (die_task != NULL)
95 { 95 {
96 GNUNET_SCHEDULER_cancel (die_task); 96 GNUNET_SCHEDULER_cancel (die_task);
97 die_task = GNUNET_SCHEDULER_NO_TASK; 97 die_task = NULL;
98 } 98 }
99 99
100 if (th != NULL) 100 if (th != NULL)
@@ -123,14 +123,14 @@ end ()
123static void 123static void
124end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 124end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
125{ 125{
126 die_task = GNUNET_SCHEDULER_NO_TASK; 126 die_task = NULL;
127 127
128 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); 128 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n");
129 129
130 if (timer_task != GNUNET_SCHEDULER_NO_TASK) 130 if (timer_task != NULL)
131 { 131 {
132 GNUNET_SCHEDULER_cancel (timer_task); 132 GNUNET_SCHEDULER_cancel (timer_task);
133 timer_task = GNUNET_SCHEDULER_NO_TASK; 133 timer_task = NULL;
134 } 134 }
135 if (cc != NULL) 135 if (cc != NULL)
136 GNUNET_TRANSPORT_TESTING_connect_peers_cancel (tth, cc); 136 GNUNET_TRANSPORT_TESTING_connect_peers_cancel (tth, cc);
@@ -185,7 +185,7 @@ timer (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
185{ 185{
186 static int percentage; 186 static int percentage;
187 187
188 timer_task = GNUNET_SCHEDULER_NO_TASK; 188 timer_task = NULL;
189 189
190 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) 190 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
191 return; 191 return;
@@ -228,7 +228,7 @@ testing_connect_cb (struct PeerContext *p1, struct PeerContext *p2, void *cls)
228 GNUNET_STRINGS_relative_time_to_string (WAIT, 228 GNUNET_STRINGS_relative_time_to_string (WAIT,
229 GNUNET_YES)); 229 GNUNET_YES));
230 230
231 if (die_task != GNUNET_SCHEDULER_NO_TASK) 231 if (die_task != NULL)
232 GNUNET_SCHEDULER_cancel (die_task); 232 GNUNET_SCHEDULER_cancel (die_task);
233 die_task = GNUNET_SCHEDULER_add_delayed (WAIT, &end_badly, NULL); 233 die_task = GNUNET_SCHEDULER_add_delayed (WAIT, &end_badly, NULL);
234 234
@@ -279,7 +279,7 @@ run (void *cls, char *const *args, const char *cfgfile,
279 if ((p1 == NULL) || (p2 == NULL)) 279 if ((p1 == NULL) || (p2 == NULL))
280 { 280 {
281 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); 281 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n");
282 if (die_task != GNUNET_SCHEDULER_NO_TASK) 282 if (die_task != NULL)
283 GNUNET_SCHEDULER_cancel (die_task); 283 GNUNET_SCHEDULER_cancel (die_task);
284 die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); 284 die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
285 return; 285 return;
@@ -298,7 +298,7 @@ check ()
298 GNUNET_GETOPT_OPTION_END 298 GNUNET_GETOPT_OPTION_END
299 }; 299 };
300 300
301 timer_task = GNUNET_SCHEDULER_NO_TASK; 301 timer_task = NULL;
302 302
303 ok = 1; 303 ok = 1;
304 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, 304 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv,