aboutsummaryrefslogtreecommitdiff
path: root/src/transport/test_transport_api_restart_1peer.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_restart_1peer.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_restart_1peer.c')
-rw-r--r--src/transport/test_transport_api_restart_1peer.c44
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
46static int ok; 46static int ok;
47 47
48static GNUNET_SCHEDULER_TaskIdentifier die_task; 48static struct GNUNET_SCHEDULER_Task * die_task;
49 49
50static GNUNET_SCHEDULER_TaskIdentifier send_task; 50static struct GNUNET_SCHEDULER_Task * send_task;
51 51
52static GNUNET_SCHEDULER_TaskIdentifier reconnect_task; 52static struct GNUNET_SCHEDULER_Task * reconnect_task;
53 53
54static struct PeerContext *p1; 54static 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 ()
102static void 102static void
103end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 103end_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)
262static void 262static void
263sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 263sendtask (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
348static void 348static 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,