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.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.c')
-rw-r--r-- | src/transport/test_transport_api.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/transport/test_transport_api.c b/src/transport/test_transport_api.c index 4456c1dbf..ce6db8ad1 100644 --- a/src/transport/test_transport_api.c +++ b/src/transport/test_transport_api.c | |||
@@ -58,9 +58,9 @@ static int s_connected; | |||
58 | 58 | ||
59 | static int s_sending; | 59 | static int s_sending; |
60 | 60 | ||
61 | static GNUNET_SCHEDULER_TaskIdentifier die_task; | 61 | static struct GNUNET_SCHEDULER_Task * die_task; |
62 | 62 | ||
63 | static GNUNET_SCHEDULER_TaskIdentifier send_task; | 63 | static struct GNUNET_SCHEDULER_Task * send_task; |
64 | 64 | ||
65 | static struct PeerContext *p1; | 65 | static struct PeerContext *p1; |
66 | 66 | ||
@@ -82,10 +82,10 @@ end () | |||
82 | { | 82 | { |
83 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stopping peers\n"); | 83 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stopping peers\n"); |
84 | 84 | ||
85 | if (send_task != GNUNET_SCHEDULER_NO_TASK) | 85 | if (send_task != NULL) |
86 | GNUNET_SCHEDULER_cancel (send_task); | 86 | GNUNET_SCHEDULER_cancel (send_task); |
87 | 87 | ||
88 | if (die_task != GNUNET_SCHEDULER_NO_TASK) | 88 | if (die_task != NULL) |
89 | GNUNET_SCHEDULER_cancel (die_task); | 89 | GNUNET_SCHEDULER_cancel (die_task); |
90 | 90 | ||
91 | if (th != NULL) | 91 | if (th != NULL) |
@@ -99,12 +99,12 @@ end () | |||
99 | static void | 99 | static void |
100 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 100 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
101 | { | 101 | { |
102 | die_task = GNUNET_SCHEDULER_NO_TASK; | 102 | die_task = NULL; |
103 | 103 | ||
104 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Fail! Stopping peers\n"); | 104 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Fail! Stopping peers\n"); |
105 | 105 | ||
106 | 106 | ||
107 | if (send_task != GNUNET_SCHEDULER_NO_TASK) | 107 | if (send_task != NULL) |
108 | GNUNET_SCHEDULER_cancel (send_task); | 108 | GNUNET_SCHEDULER_cancel (send_task); |
109 | 109 | ||
110 | if (cc != NULL) | 110 | if (cc != NULL) |
@@ -197,7 +197,7 @@ notify_ready (void *cls, size_t size, void *buf) | |||
197 | { | 197 | { |
198 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 198 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
199 | "Timeout occurred while waiting for transmit_ready\n"); | 199 | "Timeout occurred while waiting for transmit_ready\n"); |
200 | if (GNUNET_SCHEDULER_NO_TASK != die_task) | 200 | if (NULL != die_task) |
201 | GNUNET_SCHEDULER_cancel (die_task); | 201 | GNUNET_SCHEDULER_cancel (die_task); |
202 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 202 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
203 | ok = 42; | 203 | ok = 42; |
@@ -227,7 +227,7 @@ notify_ready (void *cls, size_t size, void *buf) | |||
227 | static void | 227 | static void |
228 | sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 228 | sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
229 | { | 229 | { |
230 | send_task = GNUNET_SCHEDULER_NO_TASK; | 230 | send_task = NULL; |
231 | 231 | ||
232 | if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) | 232 | if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) |
233 | return; | 233 | return; |
@@ -351,7 +351,7 @@ run (void *cls, char *const *args, const char *cfgfile, | |||
351 | if ((p1 == NULL) || (p2 == NULL)) | 351 | if ((p1 == NULL) || (p2 == NULL)) |
352 | { | 352 | { |
353 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); | 353 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); |
354 | if (die_task != GNUNET_SCHEDULER_NO_TASK) | 354 | if (die_task != NULL) |
355 | GNUNET_SCHEDULER_cancel (die_task); | 355 | GNUNET_SCHEDULER_cancel (die_task); |
356 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 356 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
357 | return; | 357 | return; |
@@ -371,7 +371,7 @@ check () | |||
371 | GNUNET_GETOPT_OPTION_END | 371 | GNUNET_GETOPT_OPTION_END |
372 | }; | 372 | }; |
373 | 373 | ||
374 | send_task = GNUNET_SCHEDULER_NO_TASK; | 374 | send_task = NULL; |
375 | 375 | ||
376 | ok = 1; | 376 | ok = 1; |
377 | GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, test_name, | 377 | GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, test_name, |