aboutsummaryrefslogtreecommitdiff
path: root/src/transport/test_transport_api_bidirectional_connect.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_bidirectional_connect.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_bidirectional_connect.c')
-rw-r--r--src/transport/test_transport_api_bidirectional_connect.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/transport/test_transport_api_bidirectional_connect.c b/src/transport/test_transport_api_bidirectional_connect.c
index 64f39a4d8..032bf2b6e 100644
--- a/src/transport/test_transport_api_bidirectional_connect.c
+++ b/src/transport/test_transport_api_bidirectional_connect.c
@@ -49,9 +49,9 @@ static char *test_name;
49 49
50static int ok; 50static int ok;
51 51
52static GNUNET_SCHEDULER_TaskIdentifier die_task; 52static struct GNUNET_SCHEDULER_Task * die_task;
53 53
54static GNUNET_SCHEDULER_TaskIdentifier send_task; 54static struct GNUNET_SCHEDULER_Task * send_task;
55 55
56static struct PeerContext *p1; 56static struct PeerContext *p1;
57 57
@@ -74,13 +74,13 @@ end ()
74{ 74{
75 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); 75 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n");
76 76
77 if (send_task != GNUNET_SCHEDULER_NO_TASK) 77 if (send_task != NULL)
78 { 78 {
79 GNUNET_SCHEDULER_cancel (send_task); 79 GNUNET_SCHEDULER_cancel (send_task);
80 send_task = GNUNET_SCHEDULER_NO_TASK; 80 send_task = NULL;
81 } 81 }
82 82
83 if (die_task != GNUNET_SCHEDULER_NO_TASK) 83 if (die_task != NULL)
84 GNUNET_SCHEDULER_cancel (die_task); 84 GNUNET_SCHEDULER_cancel (die_task);
85 85
86 if (NULL != th) 86 if (NULL != th)
@@ -97,12 +97,12 @@ end ()
97static void 97static void
98end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 98end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
99{ 99{
100 die_task = GNUNET_SCHEDULER_NO_TASK; 100 die_task = NULL;
101 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); 101 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n");
102 if (send_task != GNUNET_SCHEDULER_NO_TASK) 102 if (send_task != NULL)
103 { 103 {
104 GNUNET_SCHEDULER_cancel (send_task); 104 GNUNET_SCHEDULER_cancel (send_task);
105 send_task = GNUNET_SCHEDULER_NO_TASK; 105 send_task = NULL;
106 } 106 }
107 107
108 if (NULL != cc2) 108 if (NULL != cc2)
@@ -177,7 +177,7 @@ notify_ready (void *cls, size_t size, void *buf)
177 { 177 {
178 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 178 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
179 "Timeout occurred while waiting for transmit_ready\n"); 179 "Timeout occurred while waiting for transmit_ready\n");
180 if (GNUNET_SCHEDULER_NO_TASK != die_task) 180 if (NULL != die_task)
181 GNUNET_SCHEDULER_cancel (die_task); 181 GNUNET_SCHEDULER_cancel (die_task);
182 die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); 182 die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
183 ok = 42; 183 ok = 42;
@@ -206,7 +206,7 @@ notify_ready (void *cls, size_t size, void *buf)
206static void 206static void
207sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 207sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
208{ 208{
209 send_task = GNUNET_SCHEDULER_NO_TASK; 209 send_task = NULL;
210 210
211 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) 211 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
212 return; 212 return;
@@ -260,11 +260,11 @@ notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer)
260 GNUNET_i2s (peer)); 260 GNUNET_i2s (peer));
261 GNUNET_free (ps); 261 GNUNET_free (ps);
262 262
263 if (GNUNET_SCHEDULER_NO_TASK != send_task) 263 if (NULL != send_task)
264 { 264 {
265 GNUNET_SCHEDULER_cancel(send_task); 265 GNUNET_SCHEDULER_cancel(send_task);
266 GNUNET_break (0); 266 GNUNET_break (0);
267 send_task = GNUNET_SCHEDULER_NO_TASK; 267 send_task = NULL;
268 } 268 }
269 if (NULL != th) 269 if (NULL != th)
270 { 270 {
@@ -350,7 +350,7 @@ run (void *cls, char *const *args, const char *cfgfile,
350 if ((p1 == NULL) || (p2 == NULL)) 350 if ((p1 == NULL) || (p2 == NULL))
351 { 351 {
352 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); 352 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n");
353 if (die_task != GNUNET_SCHEDULER_NO_TASK) 353 if (die_task != NULL)
354 GNUNET_SCHEDULER_cancel (die_task); 354 GNUNET_SCHEDULER_cancel (die_task);
355 die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); 355 die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
356 return; 356 return;
@@ -373,7 +373,7 @@ check ()
373#if WRITECONFIG 373#if WRITECONFIG
374 setTransportOptions ("test_transport_api_data.conf"); 374 setTransportOptions ("test_transport_api_data.conf");
375#endif 375#endif
376 send_task = GNUNET_SCHEDULER_NO_TASK; 376 send_task = NULL;
377 377
378 ok = 1; 378 ok = 1;
379 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, test_name, 379 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, test_name,