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/transport/test_transport_api_bidirectional_connect.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/transport/test_transport_api_bidirectional_connect.c')
-rw-r--r-- | src/transport/test_transport_api_bidirectional_connect.c | 28 |
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 | ||
50 | static int ok; | 50 | static int ok; |
51 | 51 | ||
52 | static GNUNET_SCHEDULER_TaskIdentifier die_task; | 52 | static struct GNUNET_SCHEDULER_Task * die_task; |
53 | 53 | ||
54 | static GNUNET_SCHEDULER_TaskIdentifier send_task; | 54 | static struct GNUNET_SCHEDULER_Task * send_task; |
55 | 55 | ||
56 | static struct PeerContext *p1; | 56 | static 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 () | |||
97 | static void | 97 | static void |
98 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 98 | end_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) | |||
206 | static void | 206 | static void |
207 | sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 207 | sendtask (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, |