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_monitor_validation.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_monitor_validation.c')
-rw-r--r-- | src/transport/test_transport_api_monitor_validation.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/transport/test_transport_api_monitor_validation.c b/src/transport/test_transport_api_monitor_validation.c index 11839b20c..261f1a7d0 100644 --- a/src/transport/test_transport_api_monitor_validation.c +++ b/src/transport/test_transport_api_monitor_validation.c | |||
@@ -56,9 +56,9 @@ static int s_connected; | |||
56 | 56 | ||
57 | static int s_sending; | 57 | static int s_sending; |
58 | 58 | ||
59 | static GNUNET_SCHEDULER_TaskIdentifier die_task; | 59 | static struct GNUNET_SCHEDULER_Task * die_task; |
60 | 60 | ||
61 | static GNUNET_SCHEDULER_TaskIdentifier send_task; | 61 | static struct GNUNET_SCHEDULER_Task * send_task; |
62 | 62 | ||
63 | static struct PeerContext *p1; | 63 | static struct PeerContext *p1; |
64 | 64 | ||
@@ -92,10 +92,10 @@ end () | |||
92 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stopping peers\n"); | 92 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stopping peers\n"); |
93 | 93 | ||
94 | 94 | ||
95 | if (send_task != GNUNET_SCHEDULER_NO_TASK) | 95 | if (send_task != NULL) |
96 | GNUNET_SCHEDULER_cancel (send_task); | 96 | GNUNET_SCHEDULER_cancel (send_task); |
97 | 97 | ||
98 | if (die_task != GNUNET_SCHEDULER_NO_TASK) | 98 | if (die_task != NULL) |
99 | GNUNET_SCHEDULER_cancel (die_task); | 99 | GNUNET_SCHEDULER_cancel (die_task); |
100 | 100 | ||
101 | if (th != NULL) | 101 | if (th != NULL) |
@@ -124,12 +124,12 @@ end () | |||
124 | static void | 124 | static void |
125 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 125 | end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
126 | { | 126 | { |
127 | die_task = GNUNET_SCHEDULER_NO_TASK; | 127 | die_task = NULL; |
128 | 128 | ||
129 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Fail! Stopping peers\n"); | 129 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Fail! Stopping peers\n"); |
130 | 130 | ||
131 | 131 | ||
132 | if (send_task != GNUNET_SCHEDULER_NO_TASK) | 132 | if (send_task != NULL) |
133 | GNUNET_SCHEDULER_cancel (send_task); | 133 | GNUNET_SCHEDULER_cancel (send_task); |
134 | 134 | ||
135 | if (cc != NULL) | 135 | if (cc != NULL) |
@@ -219,7 +219,7 @@ notify_receive (void *cls, const struct GNUNET_PeerIdentity *peer, | |||
219 | 219 | ||
220 | if ((0 >= p1_c) || (0 >= p2_c)) | 220 | if ((0 >= p1_c) || (0 >= p2_c)) |
221 | { | 221 | { |
222 | if (GNUNET_SCHEDULER_NO_TASK != die_task) | 222 | if (NULL != die_task) |
223 | GNUNET_SCHEDULER_cancel (die_task); | 223 | GNUNET_SCHEDULER_cancel (die_task); |
224 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 224 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
225 | } | 225 | } |
@@ -240,7 +240,7 @@ notify_ready (void *cls, size_t size, void *buf) | |||
240 | { | 240 | { |
241 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 241 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
242 | "Timeout occurred while waiting for transmit_ready\n"); | 242 | "Timeout occurred while waiting for transmit_ready\n"); |
243 | if (GNUNET_SCHEDULER_NO_TASK != die_task) | 243 | if (NULL != die_task) |
244 | GNUNET_SCHEDULER_cancel (die_task); | 244 | GNUNET_SCHEDULER_cancel (die_task); |
245 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 245 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
246 | ok = 42; | 246 | ok = 42; |
@@ -270,7 +270,7 @@ notify_ready (void *cls, size_t size, void *buf) | |||
270 | static void | 270 | static void |
271 | sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 271 | sendtask (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
272 | { | 272 | { |
273 | send_task = GNUNET_SCHEDULER_NO_TASK; | 273 | send_task = NULL; |
274 | 274 | ||
275 | if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) | 275 | if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) |
276 | return; | 276 | return; |
@@ -454,7 +454,7 @@ run (void *cls, char *const *args, const char *cfgfile, | |||
454 | if ((p1 == NULL) || (p2 == NULL)) | 454 | if ((p1 == NULL) || (p2 == NULL)) |
455 | { | 455 | { |
456 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); | 456 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Fail! Could not start peers!\n"); |
457 | if (die_task != GNUNET_SCHEDULER_NO_TASK) | 457 | if (die_task != NULL) |
458 | GNUNET_SCHEDULER_cancel (die_task); | 458 | GNUNET_SCHEDULER_cancel (die_task); |
459 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 459 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
460 | return; | 460 | return; |
@@ -474,7 +474,7 @@ check () | |||
474 | GNUNET_GETOPT_OPTION_END | 474 | GNUNET_GETOPT_OPTION_END |
475 | }; | 475 | }; |
476 | 476 | ||
477 | send_task = GNUNET_SCHEDULER_NO_TASK; | 477 | send_task = NULL; |
478 | 478 | ||
479 | ok = 1; | 479 | ok = 1; |
480 | GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, test_name, | 480 | GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, test_name, |