aboutsummaryrefslogtreecommitdiff
path: root/src/transport/test_transport_blacklisting.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_blacklisting.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_blacklisting.c')
-rw-r--r--src/transport/test_transport_blacklisting.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/transport/test_transport_blacklisting.c b/src/transport/test_transport_blacklisting.c
index fff27b69f..a14944a14 100644
--- a/src/transport/test_transport_blacklisting.c
+++ b/src/transport/test_transport_blacklisting.c
@@ -73,11 +73,11 @@ static int stage;
73static int ok; 73static int ok;
74static int connected; 74static int connected;
75 75
76static GNUNET_SCHEDULER_TaskIdentifier die_task; 76static struct GNUNET_SCHEDULER_Task * die_task;
77 77
78static GNUNET_SCHEDULER_TaskIdentifier timeout_task; 78static struct GNUNET_SCHEDULER_Task * timeout_task;
79 79
80static GNUNET_SCHEDULER_TaskIdentifier stage_task; 80static struct GNUNET_SCHEDULER_Task * stage_task;
81 81
82#if VERBOSE 82#if VERBOSE
83#define OKPP do { ok++; FPRINTF (stderr, "Now at stage %u at %s:%u\n", ok, __FILE__, __LINE__); } while (0) 83#define OKPP do { ok++; FPRINTF (stderr, "Now at stage %u at %s:%u\n", ok, __FILE__, __LINE__); } while (0)
@@ -93,22 +93,22 @@ end(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
93{ 93{
94 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Stopping\n"); 94 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Stopping\n");
95 95
96 if (die_task != GNUNET_SCHEDULER_NO_TASK ) 96 if (die_task != NULL )
97 { 97 {
98 GNUNET_SCHEDULER_cancel (die_task); 98 GNUNET_SCHEDULER_cancel (die_task);
99 die_task = GNUNET_SCHEDULER_NO_TASK; 99 die_task = NULL;
100 } 100 }
101 101
102 if (timeout_task != GNUNET_SCHEDULER_NO_TASK ) 102 if (timeout_task != NULL )
103 { 103 {
104 GNUNET_SCHEDULER_cancel (timeout_task); 104 GNUNET_SCHEDULER_cancel (timeout_task);
105 timeout_task = GNUNET_SCHEDULER_NO_TASK; 105 timeout_task = NULL;
106 } 106 }
107 107
108 if (stage_task != GNUNET_SCHEDULER_NO_TASK ) 108 if (stage_task != NULL )
109 { 109 {
110 GNUNET_SCHEDULER_cancel (stage_task); 110 GNUNET_SCHEDULER_cancel (stage_task);
111 stage_task = GNUNET_SCHEDULER_NO_TASK; 111 stage_task = NULL;
112 } 112 }
113 113
114 if (cc != NULL ) 114 if (cc != NULL )
@@ -132,18 +132,18 @@ end(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
132static void 132static void
133end_badly(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 133end_badly(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
134{ 134{
135 die_task = GNUNET_SCHEDULER_NO_TASK; 135 die_task = NULL;
136 136
137 if (timeout_task != GNUNET_SCHEDULER_NO_TASK ) 137 if (timeout_task != NULL )
138 { 138 {
139 GNUNET_SCHEDULER_cancel (timeout_task); 139 GNUNET_SCHEDULER_cancel (timeout_task);
140 timeout_task = GNUNET_SCHEDULER_NO_TASK; 140 timeout_task = NULL;
141 } 141 }
142 142
143 if (stage_task != GNUNET_SCHEDULER_NO_TASK ) 143 if (stage_task != NULL )
144 { 144 {
145 GNUNET_SCHEDULER_cancel (stage_task); 145 GNUNET_SCHEDULER_cancel (stage_task);
146 stage_task = GNUNET_SCHEDULER_NO_TASK; 146 stage_task = NULL;
147 } 147 }
148 148
149 if (cc != NULL ) 149 if (cc != NULL )
@@ -176,7 +176,7 @@ static void
176connect_timeout(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 176connect_timeout(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
177{ 177{
178 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Peers not connected, next stage\n"); 178 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Peers not connected, next stage\n");
179 timeout_task = GNUNET_SCHEDULER_NO_TASK; 179 timeout_task = NULL;
180 stage_task = GNUNET_SCHEDULER_add_now (&run_stage, NULL ); 180 stage_task = GNUNET_SCHEDULER_add_now (&run_stage, NULL );
181} 181}
182 182
@@ -246,8 +246,8 @@ static int check_blacklist_config (char *cfg_file,
246static void 246static void
247run_stage(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 247run_stage(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
248{ 248{
249 stage_task = GNUNET_SCHEDULER_NO_TASK; 249 stage_task = NULL;
250 if (GNUNET_SCHEDULER_NO_TASK != die_task) 250 if (NULL != die_task)
251 GNUNET_SCHEDULER_cancel (die_task); 251 GNUNET_SCHEDULER_cancel (die_task);
252 die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL ); 252 die_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL );
253 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Running stage %u\n", stage); 253 GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Running stage %u\n", stage);