aboutsummaryrefslogtreecommitdiff
path: root/src/datastore
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2009-11-04 14:10:32 +0000
committerChristian Grothoff <christian@grothoff.org>2009-11-04 14:10:32 +0000
commitcf45b8dff29c366d51aa2e6ea6a64b99b514b9c9 (patch)
tree5cb37c041743daff5af528dbbe24f5c563ce702e /src/datastore
parentb91546a3de767292e6472c6b1927480adba43d88 (diff)
downloadgnunet-cf45b8dff29c366d51aa2e6ea6a64b99b514b9c9.tar.gz
gnunet-cf45b8dff29c366d51aa2e6ea6a64b99b514b9c9.zip
bugfixes and redesigning scheduler API
Diffstat (limited to 'src/datastore')
-rw-r--r--src/datastore/gnunet-service-datastore.c23
-rw-r--r--src/datastore/perf_datastore_api.c16
-rw-r--r--src/datastore/perf_plugin_datastore.c11
-rw-r--r--src/datastore/plugin_datastore_sqlite.c1
-rw-r--r--src/datastore/test_datastore_api.c9
-rw-r--r--src/datastore/test_datastore_api_management.c5
6 files changed, 12 insertions, 53 deletions
diff --git a/src/datastore/gnunet-service-datastore.c b/src/datastore/gnunet-service-datastore.c
index 3a22f9bda..27b1cd58e 100644
--- a/src/datastore/gnunet-service-datastore.c
+++ b/src/datastore/gnunet-service-datastore.c
@@ -260,9 +260,6 @@ expired_processor (void *cls,
260 { 260 {
261 expired_kill_task 261 expired_kill_task
262 = GNUNET_SCHEDULER_add_delayed (sched, 262 = GNUNET_SCHEDULER_add_delayed (sched,
263 GNUNET_NO,
264 GNUNET_SCHEDULER_PRIORITY_IDLE,
265 GNUNET_SCHEDULER_NO_TASK,
266 MAX_EXPIRE_DELAY, 263 MAX_EXPIRE_DELAY,
267 &delete_expired, 264 &delete_expired,
268 NULL); 265 NULL);
@@ -1209,7 +1206,7 @@ cleaning_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
1209 GNUNET_CONTAINER_bloomfilter_free (filter); 1206 GNUNET_CONTAINER_bloomfilter_free (filter);
1210 filter = NULL; 1207 filter = NULL;
1211 } 1208 }
1212 // GNUNET_ARM_stop_services (cfg, tc->sched, "statistics", NULL); 1209 GNUNET_ARM_stop_services (cfg, tc->sched, "statistics", NULL);
1213} 1210}
1214 1211
1215 1212
@@ -1307,28 +1304,22 @@ run (void *cls,
1307 _("Failed to initialize bloomfilter.\n")); 1304 _("Failed to initialize bloomfilter.\n"));
1308 return; 1305 return;
1309 } 1306 }
1310// GNUNET_ARM_start_services (cfg, sched, "statistics", NULL); 1307 GNUNET_ARM_start_services (cfg, sched, "statistics", NULL);
1311 plugin = load_plugin (); 1308 plugin = load_plugin ();
1312 if (NULL == plugin) 1309 if (NULL == plugin)
1313 { 1310 {
1314 GNUNET_CONTAINER_bloomfilter_free (filter); 1311 GNUNET_CONTAINER_bloomfilter_free (filter);
1315 filter = NULL; 1312 filter = NULL;
1316// GNUNET_ARM_stop_services (cfg, sched, "statistics", NULL); 1313 GNUNET_ARM_stop_services (cfg, sched, "statistics", NULL);
1317 return; 1314 return;
1318 } 1315 }
1319 GNUNET_SERVER_disconnect_notify (server, &cleanup_reservations, NULL); 1316 GNUNET_SERVER_disconnect_notify (server, &cleanup_reservations, NULL);
1320 GNUNET_SERVER_add_handlers (server, handlers); 1317 GNUNET_SERVER_add_handlers (server, handlers);
1321 expired_kill_task 1318 expired_kill_task
1322 = GNUNET_SCHEDULER_add_delayed (sched, 1319 = GNUNET_SCHEDULER_add_with_priority (sched,
1323 GNUNET_NO, 1320 GNUNET_SCHEDULER_PRIORITY_IDLE,
1324 GNUNET_SCHEDULER_PRIORITY_IDLE, 1321 &delete_expired, NULL);
1325 GNUNET_SCHEDULER_NO_TASK,
1326 GNUNET_TIME_UNIT_ZERO,
1327 &delete_expired, NULL);
1328 GNUNET_SCHEDULER_add_delayed (sched, 1322 GNUNET_SCHEDULER_add_delayed (sched,
1329 GNUNET_YES,
1330 GNUNET_SCHEDULER_PRIORITY_IDLE,
1331 GNUNET_SCHEDULER_NO_TASK,
1332 GNUNET_TIME_UNIT_FOREVER_REL, 1323 GNUNET_TIME_UNIT_FOREVER_REL,
1333 &cleaning_task, NULL); 1324 &cleaning_task, NULL);
1334 1325
@@ -1350,7 +1341,7 @@ main (int argc, char *const *argv)
1350 ret = (GNUNET_OK == 1341 ret = (GNUNET_OK ==
1351 GNUNET_SERVICE_run (argc, 1342 GNUNET_SERVICE_run (argc,
1352 argv, 1343 argv,
1353 "datastore", &run, NULL, NULL, NULL)) ? 0 : 1; 1344 "datastore", &run, NULL)) ? 0 : 1;
1354 return ret; 1345 return ret;
1355} 1346}
1356 1347
diff --git a/src/datastore/perf_datastore_api.c b/src/datastore/perf_datastore_api.c
index 2344dafe8..34adf0c7d 100644
--- a/src/datastore/perf_datastore_api.c
+++ b/src/datastore/perf_datastore_api.c
@@ -140,7 +140,6 @@ check_success (void *cls,
140 crc->phase = RP_CUT; 140 crc->phase = RP_CUT;
141 } 141 }
142 GNUNET_SCHEDULER_add_continuation (crc->sched, 142 GNUNET_SCHEDULER_add_continuation (crc->sched,
143 GNUNET_NO,
144 &run_continuation, 143 &run_continuation,
145 crc, 144 crc,
146 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 145 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -167,7 +166,6 @@ remove_next(void *cls,
167#endif 166#endif
168 GNUNET_assert (GNUNET_OK == success); 167 GNUNET_assert (GNUNET_OK == success);
169 GNUNET_SCHEDULER_add_continuation (crc->sched, 168 GNUNET_SCHEDULER_add_continuation (crc->sched,
170 GNUNET_NO,
171 &run_continuation, 169 &run_continuation,
172 crc, 170 crc,
173 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 171 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -214,18 +212,15 @@ delete_value (void *cls,
214 { 212 {
215 crc->phase = RP_REPORT; 213 crc->phase = RP_REPORT;
216 GNUNET_SCHEDULER_add_continuation (crc->sched, 214 GNUNET_SCHEDULER_add_continuation (crc->sched,
217 GNUNET_NO,
218 &run_continuation, 215 &run_continuation,
219 crc, 216 crc,
220 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 217 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
221 return; 218 return;
222 } 219 }
223 GNUNET_SCHEDULER_add_after (crc->sched, 220 GNUNET_SCHEDULER_add_with_priority (crc->sched,
224 GNUNET_NO, 221 GNUNET_SCHEDULER_PRIORITY_HIGH,
225 GNUNET_SCHEDULER_PRIORITY_HIGH, 222 &do_delete,
226 GNUNET_SCHEDULER_NO_TASK, 223 crc);
227 &do_delete,
228 crc);
229 return; 224 return;
230 } 225 }
231 stored_ops++; 226 stored_ops++;
@@ -303,7 +298,6 @@ run_continuation (void *cls,
303 crc->phase = RP_PUT; 298 crc->phase = RP_PUT;
304 crc->j = 0; 299 crc->j = 0;
305 GNUNET_SCHEDULER_add_continuation (crc->sched, 300 GNUNET_SCHEDULER_add_continuation (crc->sched,
306 GNUNET_NO,
307 &run_continuation, 301 &run_continuation,
308 crc, 302 crc,
309 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 303 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -335,7 +329,6 @@ run (void *cls,
335 crc->cfg = cfg; 329 crc->cfg = cfg;
336 crc->phase = RP_PUT; 330 crc->phase = RP_PUT;
337 GNUNET_SCHEDULER_add_continuation (crc->sched, 331 GNUNET_SCHEDULER_add_continuation (crc->sched,
338 GNUNET_NO,
339 &run_continuation, 332 &run_continuation,
340 crc, 333 crc,
341 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 334 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -364,7 +357,6 @@ check ()
364 "-L", "DEBUG", 357 "-L", "DEBUG",
365#endif 358#endif
366 "-c", "test_datastore_api_data.conf", NULL); 359 "-c", "test_datastore_api_data.conf", NULL);
367 sleep (1);
368 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, 360 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,
369 argv, "perf-datastore-api", "nohelp", 361 argv, "perf-datastore-api", "nohelp",
370 options, &run, NULL); 362 options, &run, NULL);
diff --git a/src/datastore/perf_plugin_datastore.c b/src/datastore/perf_plugin_datastore.c
index b7bc9db31..a23569875 100644
--- a/src/datastore/perf_plugin_datastore.c
+++ b/src/datastore/perf_plugin_datastore.c
@@ -168,8 +168,6 @@ iterateDummy (void *cls,
168 crc->phase = RP_PUT; 168 crc->phase = RP_PUT;
169 } 169 }
170 GNUNET_SCHEDULER_add_after (crc->sched, 170 GNUNET_SCHEDULER_add_after (crc->sched,
171 GNUNET_NO,
172 GNUNET_SCHEDULER_PRIORITY_KEEP,
173 GNUNET_SCHEDULER_NO_TASK, 171 GNUNET_SCHEDULER_NO_TASK,
174 &test, crc); 172 &test, crc);
175 return GNUNET_OK; 173 return GNUNET_OK;
@@ -254,8 +252,6 @@ test (void *cls,
254 crc->i++; 252 crc->i++;
255 crc->phase = RP_LP_GET; 253 crc->phase = RP_LP_GET;
256 GNUNET_SCHEDULER_add_after (crc->sched, 254 GNUNET_SCHEDULER_add_after (crc->sched,
257 GNUNET_NO,
258 GNUNET_SCHEDULER_PRIORITY_KEEP,
259 GNUNET_SCHEDULER_NO_TASK, 255 GNUNET_SCHEDULER_NO_TASK,
260 &test, crc); 256 &test, crc);
261 break; 257 break;
@@ -301,11 +297,8 @@ test (void *cls,
301 break; 297 break;
302 case RP_DONE: 298 case RP_DONE:
303 crc->api->drop (crc->api->cls); 299 crc->api->drop (crc->api->cls);
304 GNUNET_SCHEDULER_add_delayed (crc->sched, 300 GNUNET_SCHEDULER_add_with_priority (crc->sched,
305 GNUNET_YES,
306 GNUNET_SCHEDULER_PRIORITY_IDLE, 301 GNUNET_SCHEDULER_PRIORITY_IDLE,
307 GNUNET_SCHEDULER_NO_TASK,
308 GNUNET_TIME_UNIT_ZERO,
309 &cleaning_task, crc); 302 &cleaning_task, crc);
310 break; 303 break;
311 } 304 }
@@ -364,8 +357,6 @@ run (void *cls,
364 crc->cfg = c; 357 crc->cfg = c;
365 crc->phase = RP_PUT; 358 crc->phase = RP_PUT;
366 GNUNET_SCHEDULER_add_after (s, 359 GNUNET_SCHEDULER_add_after (s,
367 GNUNET_YES,
368 GNUNET_SCHEDULER_PRIORITY_KEEP,
369 GNUNET_SCHEDULER_NO_TASK, 360 GNUNET_SCHEDULER_NO_TASK,
370 &test, crc); 361 &test, crc);
371} 362}
diff --git a/src/datastore/plugin_datastore_sqlite.c b/src/datastore/plugin_datastore_sqlite.c
index e673bafa4..1607ba5e0 100644
--- a/src/datastore/plugin_datastore_sqlite.c
+++ b/src/datastore/plugin_datastore_sqlite.c
@@ -663,7 +663,6 @@ sqlite_next_request (void *next_cls,
663 if (GNUNET_YES == end_it) 663 if (GNUNET_YES == end_it)
664 nc->end_it = GNUNET_YES; 664 nc->end_it = GNUNET_YES;
665 GNUNET_SCHEDULER_add_continuation (nc->plugin->env->sched, 665 GNUNET_SCHEDULER_add_continuation (nc->plugin->env->sched,
666 GNUNET_NO,
667 &sqlite_next_request_cont, 666 &sqlite_next_request_cont,
668 nc, 667 nc,
669 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 668 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
diff --git a/src/datastore/test_datastore_api.c b/src/datastore/test_datastore_api.c
index 605cb042d..5d4443cbe 100644
--- a/src/datastore/test_datastore_api.c
+++ b/src/datastore/test_datastore_api.c
@@ -145,7 +145,6 @@ check_success (void *cls,
145 GNUNET_free_non_null (crc->data); 145 GNUNET_free_non_null (crc->data);
146 crc->data = NULL; 146 crc->data = NULL;
147 GNUNET_SCHEDULER_add_continuation (crc->sched, 147 GNUNET_SCHEDULER_add_continuation (crc->sched,
148 GNUNET_NO,
149 &run_continuation, 148 &run_continuation,
150 crc, 149 crc,
151 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 150 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -164,7 +163,6 @@ get_reserved (void *cls,
164 GNUNET_assert (0 < success); 163 GNUNET_assert (0 < success);
165 crc->rid = success; 164 crc->rid = success;
166 GNUNET_SCHEDULER_add_continuation (crc->sched, 165 GNUNET_SCHEDULER_add_continuation (crc->sched,
167 GNUNET_NO,
168 &run_continuation, 166 &run_continuation,
169 crc, 167 crc,
170 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 168 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -193,7 +191,6 @@ check_value (void *cls,
193 crc->i = ITERATIONS; 191 crc->i = ITERATIONS;
194 } 192 }
195 GNUNET_SCHEDULER_add_continuation (crc->sched, 193 GNUNET_SCHEDULER_add_continuation (crc->sched,
196 GNUNET_NO,
197 &run_continuation, 194 &run_continuation,
198 crc, 195 crc,
199 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 196 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -226,7 +223,6 @@ delete_value (void *cls,
226 { 223 {
227 crc->phase = RP_DO_DEL; 224 crc->phase = RP_DO_DEL;
228 GNUNET_SCHEDULER_add_continuation (crc->sched, 225 GNUNET_SCHEDULER_add_continuation (crc->sched,
229 GNUNET_NO,
230 &run_continuation, 226 &run_continuation,
231 crc, 227 crc,
232 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 228 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -259,7 +255,6 @@ check_nothing (void *cls,
259 crc->phase = RP_RESERVE; 255 crc->phase = RP_RESERVE;
260 } 256 }
261 GNUNET_SCHEDULER_add_continuation (crc->sched, 257 GNUNET_SCHEDULER_add_continuation (crc->sched,
262 GNUNET_NO,
263 &run_continuation, 258 &run_continuation,
264 crc, 259 crc,
265 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 260 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -284,7 +279,6 @@ check_multiple (void *cls,
284 GNUNET_assert (crc->phase == RP_GET_MULTIPLE_DONE); 279 GNUNET_assert (crc->phase == RP_GET_MULTIPLE_DONE);
285 crc->phase = RP_UPDATE; 280 crc->phase = RP_UPDATE;
286 GNUNET_SCHEDULER_add_continuation (crc->sched, 281 GNUNET_SCHEDULER_add_continuation (crc->sched,
287 GNUNET_NO,
288 &run_continuation, 282 &run_continuation,
289 crc, 283 crc,
290 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 284 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -315,7 +309,6 @@ check_update (void *cls,
315 GNUNET_assert (crc->phase == RP_UPDATE_DONE); 309 GNUNET_assert (crc->phase == RP_UPDATE_DONE);
316 crc->phase = RP_DONE; 310 crc->phase = RP_DONE;
317 GNUNET_SCHEDULER_add_continuation (crc->sched, 311 GNUNET_SCHEDULER_add_continuation (crc->sched,
318 GNUNET_NO,
319 &run_continuation, 312 &run_continuation,
320 crc, 313 crc,
321 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 314 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -542,7 +535,6 @@ run (void *cls,
542 now = GNUNET_TIME_absolute_get (); 535 now = GNUNET_TIME_absolute_get ();
543 datastore = GNUNET_DATASTORE_connect (cfg, sched); 536 datastore = GNUNET_DATASTORE_connect (cfg, sched);
544 GNUNET_SCHEDULER_add_continuation (crc->sched, 537 GNUNET_SCHEDULER_add_continuation (crc->sched,
545 GNUNET_NO,
546 &run_continuation, 538 &run_continuation,
547 crc, 539 crc,
548 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 540 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -572,7 +564,6 @@ check ()
572 "-L", "DEBUG", 564 "-L", "DEBUG",
573#endif 565#endif
574 "-c", "test_datastore_api_data.conf", NULL); 566 "-c", "test_datastore_api_data.conf", NULL);
575 sleep (1);
576 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, 567 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,
577 argv, "test-datastore-api", "nohelp", 568 argv, "test-datastore-api", "nohelp",
578 options, &run, NULL); 569 options, &run, NULL);
diff --git a/src/datastore/test_datastore_api_management.c b/src/datastore/test_datastore_api_management.c
index 48daebb1d..cad789a6f 100644
--- a/src/datastore/test_datastore_api_management.c
+++ b/src/datastore/test_datastore_api_management.c
@@ -133,7 +133,6 @@ check_success (void *cls,
133 GNUNET_free_non_null (crc->data); 133 GNUNET_free_non_null (crc->data);
134 crc->data = NULL; 134 crc->data = NULL;
135 GNUNET_SCHEDULER_add_continuation (crc->sched, 135 GNUNET_SCHEDULER_add_continuation (crc->sched,
136 GNUNET_NO,
137 &run_continuation, 136 &run_continuation,
138 crc, 137 crc,
139 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 138 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -171,7 +170,6 @@ check_value (void *cls,
171 if (0 == crc->i) 170 if (0 == crc->i)
172 crc->phase = RP_DONE; 171 crc->phase = RP_DONE;
173 GNUNET_SCHEDULER_add_continuation (crc->sched, 172 GNUNET_SCHEDULER_add_continuation (crc->sched,
174 GNUNET_NO,
175 &run_continuation, 173 &run_continuation,
176 crc, 174 crc,
177 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 175 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -206,7 +204,6 @@ check_nothing (void *cls,
206 if (0 == --crc->i) 204 if (0 == --crc->i)
207 crc->phase = RP_DONE; 205 crc->phase = RP_DONE;
208 GNUNET_SCHEDULER_add_continuation (crc->sched, 206 GNUNET_SCHEDULER_add_continuation (crc->sched,
209 GNUNET_NO,
210 &run_continuation, 207 &run_continuation,
211 crc, 208 crc,
212 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 209 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -310,7 +307,6 @@ run (void *cls,
310 now = GNUNET_TIME_absolute_get (); 307 now = GNUNET_TIME_absolute_get ();
311 datastore = GNUNET_DATASTORE_connect (cfg, sched); 308 datastore = GNUNET_DATASTORE_connect (cfg, sched);
312 GNUNET_SCHEDULER_add_continuation (crc->sched, 309 GNUNET_SCHEDULER_add_continuation (crc->sched,
313 GNUNET_NO,
314 &run_continuation, 310 &run_continuation,
315 crc, 311 crc,
316 GNUNET_SCHEDULER_REASON_PREREQ_DONE); 312 GNUNET_SCHEDULER_REASON_PREREQ_DONE);
@@ -340,7 +336,6 @@ check ()
340 "-L", "DEBUG", 336 "-L", "DEBUG",
341#endif 337#endif
342 "-c", "test_datastore_api_data.conf", NULL); 338 "-c", "test_datastore_api_data.conf", NULL);
343 sleep (1);
344 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, 339 GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1,
345 argv, "test-datastore-api", "nohelp", 340 argv, "test-datastore-api", "nohelp",
346 options, &run, NULL); 341 options, &run, NULL);