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_restart_1peer.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_restart_1peer.c')
-rw-r--r-- | src/transport/test_transport_api_restart_1peer.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/src/transport/test_transport_api_restart_1peer.c b/src/transport/test_transport_api_restart_1peer.c index f0d5d5660..b77d8d0df 100644 --- a/src/transport/test_transport_api_restart_1peer.c +++ b/src/transport/test_transport_api_restart_1peer.c | |||
@@ -45,11 +45,11 @@ static char *test_name; | |||
45 | 45 | ||
46 | static int ok; | 46 | static int ok; |
47 | 47 | ||
48 | static GNUNET_SCHEDULER_TaskIdentifier die_task; | 48 | static struct GNUNET_SCHEDULER_Task * die_task; |
49 | 49 | ||
50 | static GNUNET_SCHEDULER_TaskIdentifier send_task; | 50 | static struct GNUNET_SCHEDULER_Task * send_task; |
51 | 51 | ||
52 | static GNUNET_SCHEDULER_TaskIdentifier reconnect_task; | 52 | static struct GNUNET_SCHEDULER_Task * reconnect_task; |
53 | 53 | ||
54 | static struct PeerContext *p1; | 54 | static struct PeerContext *p1; |
55 | 55 | ||
@@ -77,17 +77,17 @@ end () | |||
77 | { | 77 | { |
78 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); | 78 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n"); |
79 | 79 | ||
80 | if (send_task != GNUNET_SCHEDULER_NO_TASK) | 80 | if (send_task != NULL) |
81 | GNUNET_SCHEDULER_cancel (send_task); | 81 | GNUNET_SCHEDULER_cancel (send_task); |
82 | send_task = GNUNET_SCHEDULER_NO_TASK; | 82 | send_task = NULL; |
83 | 83 | ||
84 | if (reconnect_task != GNUNET_SCHEDULER_NO_TASK) | 84 | if (reconnect_task != NULL) |
85 | GNUNET_SCHEDULER_cancel (reconnect_task); | 85 | GNUNET_SCHEDULER_cancel (reconnect_task); |
86 | reconnect_task = GNUNET_SCHEDULER_NO_TASK; | 86 | reconnect_task = NULL; |
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 | die_task = GNUNET_SCHEDULER_NO_TASK; | 90 | die_task = NULL; |
91 | 91 | ||
92 | if (th != NULL) | 92 | if (th != NULL) |
93 | GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); | 93 | GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); |
@@ -102,7 +102,7 @@ end () | |||
102 | static void | 102 | static void |
103 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 103 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
104 | { | 104 | { |
105 | die_task = GNUNET_SCHEDULER_NO_TASK; | 105 | die_task = NULL; |
106 | 106 | ||
107 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); | 107 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n"); |
108 | 108 | ||
@@ -112,13 +112,13 @@ end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
112 | if (restarted == GNUNET_NO) | 112 | if (restarted == GNUNET_NO) |
113 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Peer was NOT restarted\n"); | 113 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Peer was NOT restarted\n"); |
114 | 114 | ||
115 | if (reconnect_task != GNUNET_SCHEDULER_NO_TASK) | 115 | if (reconnect_task != NULL) |
116 | GNUNET_SCHEDULER_cancel (reconnect_task); | 116 | GNUNET_SCHEDULER_cancel (reconnect_task); |
117 | reconnect_task = GNUNET_SCHEDULER_NO_TASK; | 117 | reconnect_task = NULL; |
118 | 118 | ||
119 | if (send_task != GNUNET_SCHEDULER_NO_TASK) | 119 | if (send_task != NULL) |
120 | GNUNET_SCHEDULER_cancel (send_task); | 120 | GNUNET_SCHEDULER_cancel (send_task); |
121 | send_task = GNUNET_SCHEDULER_NO_TASK; | 121 | send_task = NULL; |
122 | 122 | ||
123 | if (cc != NULL) | 123 | if (cc != NULL) |
124 | { | 124 | { |
@@ -144,7 +144,7 @@ reconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
144 | { | 144 | { |
145 | struct PeerContext *p = cls; | 145 | struct PeerContext *p = cls; |
146 | 146 | ||
147 | reconnect_task = GNUNET_SCHEDULER_NO_TASK; | 147 | reconnect_task = NULL; |
148 | 148 | ||
149 | GNUNET_TRANSPORT_try_connect (p->th, &p2->id, NULL, NULL); /*FIXME TRY_CONNECT change */ | 149 | GNUNET_TRANSPORT_try_connect (p->th, &p2->id, NULL, NULL); /*FIXME TRY_CONNECT change */ |
150 | reconnect_task = | 150 | reconnect_task = |
@@ -214,7 +214,7 @@ notify_receive (void *cls, const struct GNUNET_PeerIdentity *peer, | |||
214 | { | 214 | { |
215 | GNUNET_break (0); | 215 | GNUNET_break (0); |
216 | ok = 1; | 216 | ok = 1; |
217 | if (die_task != GNUNET_SCHEDULER_NO_TASK) | 217 | if (die_task != NULL) |
218 | GNUNET_SCHEDULER_cancel (die_task); | 218 | GNUNET_SCHEDULER_cancel (die_task); |
219 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 219 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
220 | } | 220 | } |
@@ -233,7 +233,7 @@ notify_ready (void *cls, size_t size, void *buf) | |||
233 | { | 233 | { |
234 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 234 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
235 | "Timeout occurred while waiting for transmit_ready\n"); | 235 | "Timeout occurred while waiting for transmit_ready\n"); |
236 | if (GNUNET_SCHEDULER_NO_TASK != die_task) | 236 | if (NULL != die_task) |
237 | GNUNET_SCHEDULER_cancel (die_task); | 237 | GNUNET_SCHEDULER_cancel (die_task); |
238 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 238 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
239 | ok = 42; | 239 | ok = 42; |
@@ -262,7 +262,7 @@ notify_ready (void *cls, size_t size, void *buf) | |||
262 | static void | 262 | static void |
263 | sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 263 | sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
264 | { | 264 | { |
265 | send_task = GNUNET_SCHEDULER_NO_TASK; | 265 | send_task = NULL; |
266 | 266 | ||
267 | if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) | 267 | if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) |
268 | return; | 268 | return; |
@@ -340,9 +340,9 @@ notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) | |||
340 | if (th != NULL) | 340 | if (th != NULL) |
341 | GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); | 341 | GNUNET_TRANSPORT_notify_transmit_ready_cancel (th); |
342 | th = NULL; | 342 | th = NULL; |
343 | if (GNUNET_SCHEDULER_NO_TASK != send_task) | 343 | if (NULL != send_task) |
344 | GNUNET_SCHEDULER_cancel (send_task); | 344 | GNUNET_SCHEDULER_cancel (send_task); |
345 | send_task = GNUNET_SCHEDULER_NO_TASK; | 345 | send_task = NULL; |
346 | } | 346 | } |
347 | 347 | ||
348 | static void | 348 | static void |
@@ -405,7 +405,7 @@ run (void *cls, char *const *args, const char *cfgfile, | |||
405 | if ((p1 == NULL) || (p2 == NULL)) | 405 | if ((p1 == NULL) || (p2 == NULL)) |
406 | { | 406 | { |
407 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); | 407 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); |
408 | if (die_task != GNUNET_SCHEDULER_NO_TASK) | 408 | if (die_task != NULL) |
409 | GNUNET_SCHEDULER_cancel (die_task); | 409 | GNUNET_SCHEDULER_cancel (die_task); |
410 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 410 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
411 | return; | 411 | return; |
@@ -425,7 +425,7 @@ check () | |||
425 | GNUNET_GETOPT_OPTION_END | 425 | GNUNET_GETOPT_OPTION_END |
426 | }; | 426 | }; |
427 | 427 | ||
428 | send_task = GNUNET_SCHEDULER_NO_TASK; | 428 | send_task = NULL; |
429 | 429 | ||
430 | ok = 1; | 430 | ok = 1; |
431 | GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, test_name, | 431 | GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, test_name, |