aboutsummaryrefslogtreecommitdiff
path: root/src/dht
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/dht
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/dht')
-rw-r--r--src/dht/dht_api.c18
-rw-r--r--src/dht/gnunet-service-dht_clients.c10
-rw-r--r--src/dht/gnunet-service-dht_neighbours.c16
-rw-r--r--src/dht/gnunet-service-xdht_clients.c10
-rw-r--r--src/dht/gnunet-service-xdht_neighbours.c54
-rw-r--r--src/dht/gnunet_dht_profiler.c28
-rw-r--r--src/dht/test_dht_api.c8
-rw-r--r--src/dht/test_dht_monitor.c4
-rw-r--r--src/dht/test_dht_topo.c4
9 files changed, 76 insertions, 76 deletions
diff --git a/src/dht/dht_api.c b/src/dht/dht_api.c
index be699e65e..5822702e0 100644
--- a/src/dht/dht_api.c
+++ b/src/dht/dht_api.c
@@ -66,7 +66,7 @@ struct PendingMessage
66 * Continuation to call when the request has been 66 * Continuation to call when the request has been
67 * transmitted (for the first time) to the service; can be NULL. 67 * transmitted (for the first time) to the service; can be NULL.
68 */ 68 */
69 GNUNET_SCHEDULER_Task cont; 69 GNUNET_SCHEDULER_TaskCallback cont;
70 70
71 /** 71 /**
72 * Closure for 'cont'. 72 * Closure for 'cont'.
@@ -155,7 +155,7 @@ struct GNUNET_DHT_PutHandle
155 /** 155 /**
156 * Timeout task for this operation. 156 * Timeout task for this operation.
157 */ 157 */
158 GNUNET_SCHEDULER_TaskIdentifier timeout_task; 158 struct GNUNET_SCHEDULER_Task * timeout_task;
159 159
160 /** 160 /**
161 * Unique ID for the PUT operation. 161 * Unique ID for the PUT operation.
@@ -345,7 +345,7 @@ struct GNUNET_DHT_Handle
345 /** 345 /**
346 * Task for trying to reconnect. 346 * Task for trying to reconnect.
347 */ 347 */
348 GNUNET_SCHEDULER_TaskIdentifier reconnect_task; 348 struct GNUNET_SCHEDULER_Task * reconnect_task;
349 349
350 /** 350 /**
351 * How quickly should we retry? Used for exponential back-off on 351 * How quickly should we retry? Used for exponential back-off on
@@ -506,7 +506,7 @@ try_reconnect (void *cls,
506 506
507 LOG (GNUNET_ERROR_TYPE_DEBUG, "Reconnecting with DHT %p\n", handle); 507 LOG (GNUNET_ERROR_TYPE_DEBUG, "Reconnecting with DHT %p\n", handle);
508 handle->retry_time = GNUNET_TIME_STD_BACKOFF (handle->retry_time); 508 handle->retry_time = GNUNET_TIME_STD_BACKOFF (handle->retry_time);
509 handle->reconnect_task = GNUNET_SCHEDULER_NO_TASK; 509 handle->reconnect_task = NULL;
510 if (GNUNET_YES != try_connect (handle)) 510 if (GNUNET_YES != try_connect (handle))
511 { 511 {
512 LOG (GNUNET_ERROR_TYPE_DEBUG, "dht reconnect failed(!)\n"); 512 LOG (GNUNET_ERROR_TYPE_DEBUG, "dht reconnect failed(!)\n");
@@ -531,7 +531,7 @@ do_disconnect (struct GNUNET_DHT_Handle *handle)
531 531
532 if (NULL == handle->client) 532 if (NULL == handle->client)
533 return; 533 return;
534 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == handle->reconnect_task); 534 GNUNET_assert (NULL == handle->reconnect_task);
535 if (NULL != handle->th) 535 if (NULL != handle->th)
536 GNUNET_CLIENT_notify_transmit_ready_cancel (handle->th); 536 GNUNET_CLIENT_notify_transmit_ready_cancel (handle->th);
537 handle->th = NULL; 537 handle->th = NULL;
@@ -1126,7 +1126,7 @@ GNUNET_DHT_disconnect (struct GNUNET_DHT_Handle *handle)
1126 GNUNET_CLIENT_disconnect (handle->client); 1126 GNUNET_CLIENT_disconnect (handle->client);
1127 handle->client = NULL; 1127 handle->client = NULL;
1128 } 1128 }
1129 if (GNUNET_SCHEDULER_NO_TASK != handle->reconnect_task) 1129 if (NULL != handle->reconnect_task)
1130 GNUNET_SCHEDULER_cancel (handle->reconnect_task); 1130 GNUNET_SCHEDULER_cancel (handle->reconnect_task);
1131 GNUNET_CONTAINER_multihashmap_destroy (handle->active_requests); 1131 GNUNET_CONTAINER_multihashmap_destroy (handle->active_requests);
1132 GNUNET_free (handle); 1132 GNUNET_free (handle);
@@ -1146,7 +1146,7 @@ timeout_put_request (void *cls,
1146 struct GNUNET_DHT_PutHandle *ph = cls; 1146 struct GNUNET_DHT_PutHandle *ph = cls;
1147 struct GNUNET_DHT_Handle *handle = ph->dht_handle; 1147 struct GNUNET_DHT_Handle *handle = ph->dht_handle;
1148 1148
1149 ph->timeout_task = GNUNET_SCHEDULER_NO_TASK; 1149 ph->timeout_task = NULL;
1150 if (NULL != ph->pending) 1150 if (NULL != ph->pending)
1151 { 1151 {
1152 GNUNET_CONTAINER_DLL_remove (handle->pending_head, handle->pending_tail, 1152 GNUNET_CONTAINER_DLL_remove (handle->pending_head, handle->pending_tail,
@@ -1283,10 +1283,10 @@ GNUNET_DHT_put_cancel (struct GNUNET_DHT_PutHandle *ph)
1283 GNUNET_free (ph->pending); 1283 GNUNET_free (ph->pending);
1284 ph->pending = NULL; 1284 ph->pending = NULL;
1285 } 1285 }
1286 if (ph->timeout_task != GNUNET_SCHEDULER_NO_TASK) 1286 if (ph->timeout_task != NULL)
1287 { 1287 {
1288 GNUNET_SCHEDULER_cancel (ph->timeout_task); 1288 GNUNET_SCHEDULER_cancel (ph->timeout_task);
1289 ph->timeout_task = GNUNET_SCHEDULER_NO_TASK; 1289 ph->timeout_task = NULL;
1290 } 1290 }
1291 GNUNET_CONTAINER_DLL_remove (handle->put_head, 1291 GNUNET_CONTAINER_DLL_remove (handle->put_head,
1292 handle->put_tail, 1292 handle->put_tail,
diff --git a/src/dht/gnunet-service-dht_clients.c b/src/dht/gnunet-service-dht_clients.c
index b9058dc3b..09e563245 100644
--- a/src/dht/gnunet-service-dht_clients.c
+++ b/src/dht/gnunet-service-dht_clients.c
@@ -265,7 +265,7 @@ static struct GNUNET_CONTAINER_Heap *retry_heap;
265/** 265/**
266 * Task that re-transmits requests (using retry_heap). 266 * Task that re-transmits requests (using retry_heap).
267 */ 267 */
268static GNUNET_SCHEDULER_TaskIdentifier retry_task; 268static struct GNUNET_SCHEDULER_Task * retry_task;
269 269
270 270
271/** 271/**
@@ -459,7 +459,7 @@ transmit_next_request_task (void *cls,
459 struct ClientQueryRecord *cqr; 459 struct ClientQueryRecord *cqr;
460 struct GNUNET_TIME_Relative delay; 460 struct GNUNET_TIME_Relative delay;
461 461
462 retry_task = GNUNET_SCHEDULER_NO_TASK; 462 retry_task = NULL;
463 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) 463 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
464 return; 464 return;
465 while (NULL != (cqr = GNUNET_CONTAINER_heap_remove_root (retry_heap))) 465 while (NULL != (cqr = GNUNET_CONTAINER_heap_remove_root (retry_heap)))
@@ -628,7 +628,7 @@ handle_dht_local_get (void *cls, struct GNUNET_SERVER_Client *client,
628 GDS_NEIGHBOURS_get_id(), 628 GDS_NEIGHBOURS_get_id(),
629 &get->key); 629 &get->key);
630 /* start remote requests */ 630 /* start remote requests */
631 if (GNUNET_SCHEDULER_NO_TASK != retry_task) 631 if (NULL != retry_task)
632 GNUNET_SCHEDULER_cancel (retry_task); 632 GNUNET_SCHEDULER_cancel (retry_task);
633 retry_task = GNUNET_SCHEDULER_add_now (&transmit_next_request_task, NULL); 633 retry_task = GNUNET_SCHEDULER_add_now (&transmit_next_request_task, NULL);
634 /* perform local lookup */ 634 /* perform local lookup */
@@ -1496,10 +1496,10 @@ GDS_CLIENTS_done ()
1496{ 1496{
1497 GNUNET_assert (client_head == NULL); 1497 GNUNET_assert (client_head == NULL);
1498 GNUNET_assert (client_tail == NULL); 1498 GNUNET_assert (client_tail == NULL);
1499 if (GNUNET_SCHEDULER_NO_TASK != retry_task) 1499 if (NULL != retry_task)
1500 { 1500 {
1501 GNUNET_SCHEDULER_cancel (retry_task); 1501 GNUNET_SCHEDULER_cancel (retry_task);
1502 retry_task = GNUNET_SCHEDULER_NO_TASK; 1502 retry_task = NULL;
1503 } 1503 }
1504 if (NULL != retry_heap) 1504 if (NULL != retry_heap)
1505 { 1505 {
diff --git a/src/dht/gnunet-service-dht_neighbours.c b/src/dht/gnunet-service-dht_neighbours.c
index 38a9c45ad..9608405ef 100644
--- a/src/dht/gnunet-service-dht_neighbours.c
+++ b/src/dht/gnunet-service-dht_neighbours.c
@@ -334,7 +334,7 @@ struct PeerInfo
334 /** 334 /**
335 * Task for scheduling preference updates 335 * Task for scheduling preference updates
336 */ 336 */
337 GNUNET_SCHEDULER_TaskIdentifier preference_task; 337 struct GNUNET_SCHEDULER_Task * preference_task;
338 338
339 /** 339 /**
340 * What is the identity of the peer? 340 * What is the identity of the peer?
@@ -422,7 +422,7 @@ static unsigned int bucket_size = DEFAULT_BUCKET_SIZE;
422/** 422/**
423 * Task that sends FIND PEER requests. 423 * Task that sends FIND PEER requests.
424 */ 424 */
425static GNUNET_SCHEDULER_TaskIdentifier find_peer_task; 425static struct GNUNET_SCHEDULER_Task * find_peer_task;
426 426
427/** 427/**
428 * Identity of this peer. 428 * Identity of this peer.
@@ -485,7 +485,7 @@ update_core_preference (void *cls,
485 int bucket; 485 int bucket;
486 struct GNUNET_HashCode phash; 486 struct GNUNET_HashCode phash;
487 487
488 peer->preference_task = GNUNET_SCHEDULER_NO_TASK; 488 peer->preference_task = NULL;
489 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) 489 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
490 return; 490 return;
491 GNUNET_CRYPTO_hash (&peer->id, 491 GNUNET_CRYPTO_hash (&peer->id,
@@ -586,7 +586,7 @@ send_find_peer_message (void *cls,
586 struct BloomConstructorContext bcc; 586 struct BloomConstructorContext bcc;
587 struct GNUNET_CONTAINER_BloomFilter *peer_bf; 587 struct GNUNET_CONTAINER_BloomFilter *peer_bf;
588 588
589 find_peer_task = GNUNET_SCHEDULER_NO_TASK; 589 find_peer_task = NULL;
590 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) 590 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
591 return; 591 return;
592 if (newly_found_peers > bucket_size) 592 if (newly_found_peers > bucket_size)
@@ -729,10 +729,10 @@ handle_core_disconnect (void *cls,
729 GNUNET_CONTAINER_multipeermap_remove (all_known_peers, 729 GNUNET_CONTAINER_multipeermap_remove (all_known_peers,
730 peer, 730 peer,
731 to_remove)); 731 to_remove));
732 if (GNUNET_SCHEDULER_NO_TASK != to_remove->preference_task) 732 if (NULL != to_remove->preference_task)
733 { 733 {
734 GNUNET_SCHEDULER_cancel (to_remove->preference_task); 734 GNUNET_SCHEDULER_cancel (to_remove->preference_task);
735 to_remove->preference_task = GNUNET_SCHEDULER_NO_TASK; 735 to_remove->preference_task = NULL;
736 } 736 }
737 GNUNET_CRYPTO_hash (peer, 737 GNUNET_CRYPTO_hash (peer,
738 sizeof (struct GNUNET_PeerIdentity), 738 sizeof (struct GNUNET_PeerIdentity),
@@ -2240,10 +2240,10 @@ GDS_NEIGHBOURS_done ()
2240 GNUNET_assert (0 == GNUNET_CONTAINER_multipeermap_size (all_known_peers)); 2240 GNUNET_assert (0 == GNUNET_CONTAINER_multipeermap_size (all_known_peers));
2241 GNUNET_CONTAINER_multipeermap_destroy (all_known_peers); 2241 GNUNET_CONTAINER_multipeermap_destroy (all_known_peers);
2242 all_known_peers = NULL; 2242 all_known_peers = NULL;
2243 if (GNUNET_SCHEDULER_NO_TASK != find_peer_task) 2243 if (NULL != find_peer_task)
2244 { 2244 {
2245 GNUNET_SCHEDULER_cancel (find_peer_task); 2245 GNUNET_SCHEDULER_cancel (find_peer_task);
2246 find_peer_task = GNUNET_SCHEDULER_NO_TASK; 2246 find_peer_task = NULL;
2247 } 2247 }
2248} 2248}
2249 2249
diff --git a/src/dht/gnunet-service-xdht_clients.c b/src/dht/gnunet-service-xdht_clients.c
index 3ddb62be1..1c6b5d1bd 100644
--- a/src/dht/gnunet-service-xdht_clients.c
+++ b/src/dht/gnunet-service-xdht_clients.c
@@ -268,7 +268,7 @@ static struct GNUNET_CONTAINER_Heap *retry_heap;
268/** 268/**
269 * Task that re-transmits requests (using retry_heap). 269 * Task that re-transmits requests (using retry_heap).
270 */ 270 */
271static GNUNET_SCHEDULER_TaskIdentifier retry_task; 271static struct GNUNET_SCHEDULER_Task * retry_task;
272 272
273 273
274/** 274/**
@@ -875,7 +875,7 @@ transmit_next_request_task (void *cls,
875 struct ClientQueryRecord *cqr; 875 struct ClientQueryRecord *cqr;
876 struct GNUNET_TIME_Relative delay; 876 struct GNUNET_TIME_Relative delay;
877 877
878 retry_task = GNUNET_SCHEDULER_NO_TASK; 878 retry_task = NULL;
879 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) 879 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
880 return; 880 return;
881 while (NULL != (cqr = GNUNET_CONTAINER_heap_remove_root (retry_heap))) 881 while (NULL != (cqr = GNUNET_CONTAINER_heap_remove_root (retry_heap)))
@@ -1028,7 +1028,7 @@ handle_dht_local_get (void *cls, struct GNUNET_SERVER_Client *client,
1028 &my_identity, 1028 &my_identity,
1029 &get->key); 1029 &get->key);
1030 /* start remote requests */ 1030 /* start remote requests */
1031 if (GNUNET_SCHEDULER_NO_TASK != retry_task) 1031 if (NULL != retry_task)
1032 GNUNET_SCHEDULER_cancel (retry_task); 1032 GNUNET_SCHEDULER_cancel (retry_task);
1033 retry_task = GNUNET_SCHEDULER_add_now (&transmit_next_request_task, NULL); 1033 retry_task = GNUNET_SCHEDULER_add_now (&transmit_next_request_task, NULL);
1034 GNUNET_SERVER_receive_done (client, GNUNET_OK); 1034 GNUNET_SERVER_receive_done (client, GNUNET_OK);
@@ -1422,10 +1422,10 @@ GDS_CLIENTS_done ()
1422{ 1422{
1423 GNUNET_assert (client_head == NULL); 1423 GNUNET_assert (client_head == NULL);
1424 GNUNET_assert (client_tail == NULL); 1424 GNUNET_assert (client_tail == NULL);
1425 if (GNUNET_SCHEDULER_NO_TASK != retry_task) 1425 if (NULL != retry_task)
1426 { 1426 {
1427 GNUNET_SCHEDULER_cancel (retry_task); 1427 GNUNET_SCHEDULER_cancel (retry_task);
1428 retry_task = GNUNET_SCHEDULER_NO_TASK; 1428 retry_task = NULL;
1429 } 1429 }
1430 if (NULL != retry_heap) 1430 if (NULL != retry_heap)
1431 { 1431 {
diff --git a/src/dht/gnunet-service-xdht_neighbours.c b/src/dht/gnunet-service-xdht_neighbours.c
index 8684ada0e..00bc69424 100644
--- a/src/dht/gnunet-service-xdht_neighbours.c
+++ b/src/dht/gnunet-service-xdht_neighbours.c
@@ -854,25 +854,25 @@ struct VerifySuccessorContext
854 * Task that sends FIND FINGER TRAIL requests. This task is started when we have 854 * Task that sends FIND FINGER TRAIL requests. This task is started when we have
855 * get our first friend. 855 * get our first friend.
856 */ 856 */
857static GNUNET_SCHEDULER_TaskIdentifier find_finger_trail_task; 857static struct GNUNET_SCHEDULER_Task * find_finger_trail_task;
858 858
859/** 859/**
860 * Task that sends verify successor message. This task is started when we get 860 * Task that sends verify successor message. This task is started when we get
861 * our successor for the first time. 861 * our successor for the first time.
862 */ 862 */
863static GNUNET_SCHEDULER_TaskIdentifier send_verify_successor_task; 863static struct GNUNET_SCHEDULER_Task * send_verify_successor_task;
864 864
865/** 865/**
866 * Task that sends verify successor message. This task is started when we get 866 * Task that sends verify successor message. This task is started when we get
867 * our successor for the first time. 867 * our successor for the first time.
868 */ 868 */
869static GNUNET_SCHEDULER_TaskIdentifier send_verify_successor_retry_task; 869static struct GNUNET_SCHEDULER_Task * send_verify_successor_retry_task;
870 870
871/** 871/**
872 * Task that sends verify successor message. This task is started when we get 872 * Task that sends verify successor message. This task is started when we get
873 * our successor for the first time. 873 * our successor for the first time.
874 */ 874 */
875static GNUNET_SCHEDULER_TaskIdentifier send_notify_new_successor_retry_task; 875static struct GNUNET_SCHEDULER_Task * send_notify_new_successor_retry_task;
876 876
877/** 877/**
878 * Identity of this peer. 878 * Identity of this peer.
@@ -3238,7 +3238,7 @@ send_verify_successor_message (void *cls,
3238 successor = &finger_table[0]; 3238 successor = &finger_table[0];
3239 3239
3240 /* This task will be scheduled when the result for Verify Successor is received. */ 3240 /* This task will be scheduled when the result for Verify Successor is received. */
3241 send_verify_successor_task = GNUNET_SCHEDULER_NO_TASK; 3241 send_verify_successor_task = NULL;
3242 3242
3243 /* When verify successor is being called for first time *for current context* 3243 /* When verify successor is being called for first time *for current context*
3244 * cls will be NULL. If send_verify_successor_retry_task is not NO_TASK, we 3244 * cls will be NULL. If send_verify_successor_retry_task is not NO_TASK, we
@@ -3259,7 +3259,7 @@ send_verify_successor_message (void *cls,
3259 * --> Waiting for notify confirmation. again don't wait for it. notify 3259 * --> Waiting for notify confirmation. again don't wait for it. notify
3260 * confirmation will not succeded. 3260 * confirmation will not succeded.
3261 */ 3261 */
3262 if (send_verify_successor_retry_task != GNUNET_SCHEDULER_NO_TASK) 3262 if (send_verify_successor_retry_task != NULL)
3263 { 3263 {
3264 /* FIXME: Are we scheduling retry task as soon as we send verify message. 3264 /* FIXME: Are we scheduling retry task as soon as we send verify message.
3265 If yes then here before making this task, first check if the message 3265 If yes then here before making this task, first check if the message
@@ -3374,7 +3374,7 @@ update_current_search_finger_index (unsigned int finger_table_index)
3374 current_search_finger_index = PREDECESSOR_FINGER_ID; 3374 current_search_finger_index = PREDECESSOR_FINGER_ID;
3375 if (0 != GNUNET_CRYPTO_cmp_peer_identity (&my_identity, &successor->finger_identity)) 3375 if (0 != GNUNET_CRYPTO_cmp_peer_identity (&my_identity, &successor->finger_identity))
3376 { 3376 {
3377 if (GNUNET_SCHEDULER_NO_TASK == send_verify_successor_task) 3377 if (NULL == send_verify_successor_task)
3378 { 3378 {
3379 send_verify_successor_task = 3379 send_verify_successor_task =
3380 GNUNET_SCHEDULER_add_now (&send_verify_successor_message, NULL); 3380 GNUNET_SCHEDULER_add_now (&send_verify_successor_message, NULL);
@@ -5133,7 +5133,7 @@ compare_and_update_successor (struct GNUNET_PeerIdentity curr_succ,
5133 GNUNET_STATISTICS_set (GDS_stats, key, succ, 0); 5133 GNUNET_STATISTICS_set (GDS_stats, key, succ, 0);
5134 GNUNET_free (key); 5134 GNUNET_free (key);
5135 } 5135 }
5136 if (send_verify_successor_task == GNUNET_SCHEDULER_NO_TASK) 5136 if (send_verify_successor_task == NULL)
5137 send_verify_successor_task = 5137 send_verify_successor_task =
5138 GNUNET_SCHEDULER_add_delayed(verify_successor_next_send_time, 5138 GNUNET_SCHEDULER_add_delayed(verify_successor_next_send_time,
5139 &send_verify_successor_message, 5139 &send_verify_successor_message,
@@ -5173,7 +5173,7 @@ compare_and_update_successor (struct GNUNET_PeerIdentity curr_succ,
5173 successor_times--; 5173 successor_times--;
5174 5174
5175 5175
5176 if (send_verify_successor_task == GNUNET_SCHEDULER_NO_TASK) 5176 if (send_verify_successor_task == NULL)
5177 send_verify_successor_task = 5177 send_verify_successor_task =
5178 GNUNET_SCHEDULER_add_delayed(verify_successor_next_send_time, 5178 GNUNET_SCHEDULER_add_delayed(verify_successor_next_send_time,
5179 &send_verify_successor_message, 5179 &send_verify_successor_message,
@@ -5262,7 +5262,7 @@ send_notify_new_successor (void *cls,
5262 ctx->target_friend); 5262 ctx->target_friend);
5263 5263
5264 if (0 == ctx->num_retries_scheduled && 5264 if (0 == ctx->num_retries_scheduled &&
5265 send_notify_new_successor_retry_task != GNUNET_SCHEDULER_NO_TASK) 5265 send_notify_new_successor_retry_task != NULL)
5266 { 5266 {
5267 // Result from previous notify successos hasn't arrived, so the retry task 5267 // Result from previous notify successos hasn't arrived, so the retry task
5268 // hasn't been cancelled! Already a new notify successor must be called. 5268 // hasn't been cancelled! Already a new notify successor must be called.
@@ -5271,7 +5271,7 @@ send_notify_new_successor (void *cls,
5271 old_notify_ctx = GNUNET_SCHEDULER_cancel(send_notify_new_successor_retry_task); 5271 old_notify_ctx = GNUNET_SCHEDULER_cancel(send_notify_new_successor_retry_task);
5272 GNUNET_free (old_notify_ctx->successor_trail); 5272 GNUNET_free (old_notify_ctx->successor_trail);
5273 GNUNET_free (old_notify_ctx); 5273 GNUNET_free (old_notify_ctx);
5274 send_notify_new_successor_retry_task = GNUNET_SCHEDULER_NO_TASK; 5274 send_notify_new_successor_retry_task = NULL;
5275 } 5275 }
5276 5276
5277 ctx->num_retries_scheduled++; 5277 ctx->num_retries_scheduled++;
@@ -5337,12 +5337,12 @@ handle_dht_p2p_verify_successor_result(void *cls,
5337 if(0 == (GNUNET_CRYPTO_cmp_peer_identity (&querying_peer, &my_identity))) 5337 if(0 == (GNUNET_CRYPTO_cmp_peer_identity (&querying_peer, &my_identity)))
5338 { 5338 {
5339 /* Cancel Retry Task */ 5339 /* Cancel Retry Task */
5340 if (GNUNET_SCHEDULER_NO_TASK != send_verify_successor_retry_task) 5340 if (NULL != send_verify_successor_retry_task)
5341 { 5341 {
5342 struct VerifySuccessorContext *ctx; 5342 struct VerifySuccessorContext *ctx;
5343 ctx = GNUNET_SCHEDULER_cancel(send_verify_successor_retry_task); 5343 ctx = GNUNET_SCHEDULER_cancel(send_verify_successor_retry_task);
5344 GNUNET_free(ctx); 5344 GNUNET_free(ctx);
5345 send_verify_successor_retry_task = GNUNET_SCHEDULER_NO_TASK; 5345 send_verify_successor_retry_task = NULL;
5346 } 5346 }
5347 compare_and_update_successor (current_successor, 5347 compare_and_update_successor (current_successor,
5348 probable_successor, trail, trail_length); 5348 probable_successor, trail, trail_length);
@@ -5533,15 +5533,15 @@ handle_dht_p2p_notify_succ_confirmation (void *cls,
5533 */ 5533 */
5534 5534
5535 // TODO: cancel schedule of notify_successor_retry_task 5535 // TODO: cancel schedule of notify_successor_retry_task
5536 if (send_notify_new_successor_retry_task != GNUNET_SCHEDULER_NO_TASK) 5536 if (send_notify_new_successor_retry_task != NULL)
5537 { 5537 {
5538 struct SendNotifyContext *notify_ctx; 5538 struct SendNotifyContext *notify_ctx;
5539 notify_ctx = GNUNET_SCHEDULER_cancel(send_notify_new_successor_retry_task); 5539 notify_ctx = GNUNET_SCHEDULER_cancel(send_notify_new_successor_retry_task);
5540 GNUNET_free (notify_ctx->successor_trail); 5540 GNUNET_free (notify_ctx->successor_trail);
5541 GNUNET_free (notify_ctx); 5541 GNUNET_free (notify_ctx);
5542 send_notify_new_successor_retry_task = GNUNET_SCHEDULER_NO_TASK; 5542 send_notify_new_successor_retry_task = NULL;
5543 } 5543 }
5544 if (send_verify_successor_task == GNUNET_SCHEDULER_NO_TASK) 5544 if (send_verify_successor_task == NULL)
5545 { 5545 {
5546 verify_successor_next_send_time.rel_value_us = 5546 verify_successor_next_send_time.rel_value_us =
5547 DHT_SEND_VERIFY_SUCCESSOR_INTERVAL.rel_value_us + 5547 DHT_SEND_VERIFY_SUCCESSOR_INTERVAL.rel_value_us +
@@ -6063,10 +6063,10 @@ handle_core_disconnect (void *cls,
6063 if (0 != GNUNET_CONTAINER_multipeermap_size (friend_peermap)) 6063 if (0 != GNUNET_CONTAINER_multipeermap_size (friend_peermap))
6064 return; 6064 return;
6065 6065
6066 if (GNUNET_SCHEDULER_NO_TASK != find_finger_trail_task) 6066 if (NULL != find_finger_trail_task)
6067 { 6067 {
6068 GNUNET_SCHEDULER_cancel (find_finger_trail_task); 6068 GNUNET_SCHEDULER_cancel (find_finger_trail_task);
6069 find_finger_trail_task = GNUNET_SCHEDULER_NO_TASK; 6069 find_finger_trail_task = NULL;
6070 } 6070 }
6071 else 6071 else
6072 GNUNET_break (0); 6072 GNUNET_break (0);
@@ -6109,7 +6109,7 @@ handle_core_connect (void *cls, const struct GNUNET_PeerIdentity *peer_identity)
6109 * selected after some time out. This is to ensure that both peers have added 6109 * selected after some time out. This is to ensure that both peers have added
6110 * each other as their friend. */ 6110 * each other as their friend. */
6111 /* Got a first connection, good time to start with FIND FINGER TRAIL requests...*/ 6111 /* Got a first connection, good time to start with FIND FINGER TRAIL requests...*/
6112 if (GNUNET_SCHEDULER_NO_TASK == find_finger_trail_task) 6112 if (NULL == find_finger_trail_task)
6113 { 6113 {
6114 find_finger_trail_task = GNUNET_SCHEDULER_add_now (&send_find_finger_trail_message, NULL); 6114 find_finger_trail_task = GNUNET_SCHEDULER_add_now (&send_find_finger_trail_message, NULL);
6115 } 6115 }
@@ -6244,33 +6244,33 @@ GDS_NEIGHBOURS_done (void)
6244 GNUNET_CONTAINER_multipeermap_destroy (friend_peermap); 6244 GNUNET_CONTAINER_multipeermap_destroy (friend_peermap);
6245 friend_peermap = NULL; 6245 friend_peermap = NULL;
6246 6246
6247 if (GNUNET_SCHEDULER_NO_TASK != find_finger_trail_task) 6247 if (NULL != find_finger_trail_task)
6248 { 6248 {
6249 GNUNET_SCHEDULER_cancel (find_finger_trail_task); 6249 GNUNET_SCHEDULER_cancel (find_finger_trail_task);
6250 find_finger_trail_task = GNUNET_SCHEDULER_NO_TASK; 6250 find_finger_trail_task = NULL;
6251 } 6251 }
6252 6252
6253 if (GNUNET_SCHEDULER_NO_TASK != send_verify_successor_task) 6253 if (NULL != send_verify_successor_task)
6254 { 6254 {
6255 GNUNET_SCHEDULER_cancel (send_verify_successor_task); 6255 GNUNET_SCHEDULER_cancel (send_verify_successor_task);
6256 send_verify_successor_task = GNUNET_SCHEDULER_NO_TASK; 6256 send_verify_successor_task = NULL;
6257 } 6257 }
6258 6258
6259 if (GNUNET_SCHEDULER_NO_TASK != send_verify_successor_retry_task) 6259 if (NULL != send_verify_successor_retry_task)
6260 { 6260 {
6261 struct VerifySuccessorContext *ctx; 6261 struct VerifySuccessorContext *ctx;
6262 ctx = GNUNET_SCHEDULER_cancel (send_verify_successor_retry_task); 6262 ctx = GNUNET_SCHEDULER_cancel (send_verify_successor_retry_task);
6263 GNUNET_free(ctx); 6263 GNUNET_free(ctx);
6264 send_verify_successor_retry_task = GNUNET_SCHEDULER_NO_TASK; 6264 send_verify_successor_retry_task = NULL;
6265 } 6265 }
6266 6266
6267 if (send_notify_new_successor_retry_task != GNUNET_SCHEDULER_NO_TASK) 6267 if (send_notify_new_successor_retry_task != NULL)
6268 { 6268 {
6269 struct SendNotifyContext *notify_ctx; 6269 struct SendNotifyContext *notify_ctx;
6270 notify_ctx = GNUNET_SCHEDULER_cancel(send_notify_new_successor_retry_task); 6270 notify_ctx = GNUNET_SCHEDULER_cancel(send_notify_new_successor_retry_task);
6271 GNUNET_free (notify_ctx->successor_trail); 6271 GNUNET_free (notify_ctx->successor_trail);
6272 GNUNET_free (notify_ctx); 6272 GNUNET_free (notify_ctx);
6273 send_notify_new_successor_retry_task = GNUNET_SCHEDULER_NO_TASK; 6273 send_notify_new_successor_retry_task = NULL;
6274 } 6274 }
6275} 6275}
6276 6276
diff --git a/src/dht/gnunet_dht_profiler.c b/src/dht/gnunet_dht_profiler.c
index f6223b3dd..668f61aef 100644
--- a/src/dht/gnunet_dht_profiler.c
+++ b/src/dht/gnunet_dht_profiler.c
@@ -195,7 +195,7 @@ struct ActiveContext
195 /** 195 /**
196 * Delay task 196 * Delay task
197 */ 197 */
198 GNUNET_SCHEDULER_TaskIdentifier delay_task; 198 struct GNUNET_SCHEDULER_Task * delay_task;
199 199
200 /** 200 /**
201 * The size of the @e put_data 201 * The size of the @e put_data
@@ -357,7 +357,7 @@ static int flag = 0;
357/** 357/**
358 * Task to collect peer and its current successor statistics. 358 * Task to collect peer and its current successor statistics.
359 */ 359 */
360static GNUNET_SCHEDULER_TaskIdentifier successor_stats_task; 360static struct GNUNET_SCHEDULER_Task * successor_stats_task;
361 361
362/** 362/**
363 * Closure for successor_stats_task. 363 * Closure for successor_stats_task.
@@ -441,7 +441,7 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
441 ac = a_ctx[cnt].ac; 441 ac = a_ctx[cnt].ac;
442 if (NULL != ac) 442 if (NULL != ac)
443 { 443 {
444 if (GNUNET_SCHEDULER_NO_TASK != ac->delay_task) 444 if (NULL != ac->delay_task)
445 GNUNET_SCHEDULER_cancel (ac->delay_task); 445 GNUNET_SCHEDULER_cancel (ac->delay_task);
446 if (NULL != ac->put_data) 446 if (NULL != ac->put_data)
447 GNUNET_free (ac->put_data); 447 GNUNET_free (ac->put_data);
@@ -554,7 +554,7 @@ cancel_get (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
554 struct ActiveContext *ac = cls; 554 struct ActiveContext *ac = cls;
555 struct Context *ctx = ac->ctx; 555 struct Context *ctx = ac->ctx;
556 556
557 ac->delay_task = GNUNET_SCHEDULER_NO_TASK; 557 ac->delay_task = NULL;
558 GNUNET_assert (NULL != ac->dht_get); 558 GNUNET_assert (NULL != ac->dht_get);
559 GNUNET_DHT_get_stop (ac->dht_get); 559 GNUNET_DHT_get_stop (ac->dht_get);
560 ac->dht_get = NULL; 560 ac->dht_get = NULL;
@@ -613,9 +613,9 @@ get_iter (void *cls,
613 get_ac->nrefs--; 613 get_ac->nrefs--;
614 GNUNET_DHT_get_stop (ac->dht_get); 614 GNUNET_DHT_get_stop (ac->dht_get);
615 ac->dht_get = NULL; 615 ac->dht_get = NULL;
616 if (ac->delay_task != GNUNET_SCHEDULER_NO_TASK) 616 if (ac->delay_task != NULL)
617 GNUNET_SCHEDULER_cancel (ac->delay_task); 617 GNUNET_SCHEDULER_cancel (ac->delay_task);
618 ac->delay_task = GNUNET_SCHEDULER_NO_TASK; 618 ac->delay_task = NULL;
619 GNUNET_assert (NULL != ctx->op); 619 GNUNET_assert (NULL != ctx->op);
620 GNUNET_TESTBED_operation_done (ctx->op); 620 GNUNET_TESTBED_operation_done (ctx->op);
621 ctx->op = NULL; 621 ctx->op = NULL;
@@ -646,7 +646,7 @@ delayed_get (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
646 struct ActiveContext *get_ac; 646 struct ActiveContext *get_ac;
647 unsigned int r; 647 unsigned int r;
648 648
649 ac->delay_task = GNUNET_SCHEDULER_NO_TASK; 649 ac->delay_task = NULL;
650 get_ac = NULL; 650 get_ac = NULL;
651 while (1) 651 while (1)
652 { 652 {
@@ -735,7 +735,7 @@ delayed_put (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
735{ 735{
736 struct ActiveContext *ac = cls; 736 struct ActiveContext *ac = cls;
737 737
738 ac->delay_task = GNUNET_SCHEDULER_NO_TASK; 738 ac->delay_task = NULL;
739 /* Generate and DHT PUT some random data */ 739 /* Generate and DHT PUT some random data */
740 ac->put_data_size = 16; /* minimum */ 740 ac->put_data_size = 16; /* minimum */
741 ac->put_data_size += GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 741 ac->put_data_size += GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK,
@@ -1065,7 +1065,7 @@ successor_stats_cont (void *cls,
1065 int count; 1065 int count;
1066 1066
1067 /* Don't schedule the task till we are looking for circle here. */ 1067 /* Don't schedule the task till we are looking for circle here. */
1068 successor_stats_task = GNUNET_SCHEDULER_NO_TASK; 1068 successor_stats_task = NULL;
1069 GNUNET_TESTBED_operation_done (successor_stats_op); 1069 GNUNET_TESTBED_operation_done (successor_stats_op);
1070 successor_stats_op = NULL; 1070 successor_stats_op = NULL;
1071 if (0 == max_searches) 1071 if (0 == max_searches)
@@ -1109,7 +1109,7 @@ successor_stats_cont (void *cls,
1109 if ((start_val == val) && (count == num_peers)) 1109 if ((start_val == val) && (count == num_peers))
1110 { 1110 {
1111 DEBUG("CIRCLE COMPLETED after %u tries", tries); 1111 DEBUG("CIRCLE COMPLETED after %u tries", tries);
1112 if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task) 1112 if(NULL == successor_stats_task)
1113 { 1113 {
1114 start_func(); 1114 start_func();
1115 } 1115 }
@@ -1123,11 +1123,11 @@ successor_stats_cont (void *cls,
1123 "Maximum tries %u exceeded while checking successor TOTAL TRIES %u" 1123 "Maximum tries %u exceeded while checking successor TOTAL TRIES %u"
1124 " circle formation. Exiting\n", 1124 " circle formation. Exiting\n",
1125 max_searches,tries); 1125 max_searches,tries);
1126 if (GNUNET_SCHEDULER_NO_TASK != successor_stats_task) 1126 if (NULL != successor_stats_task)
1127 { 1127 {
1128 successor_stats_task = GNUNET_SCHEDULER_NO_TASK; 1128 successor_stats_task = NULL;
1129 } 1129 }
1130 if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task) 1130 if(NULL == successor_stats_task)
1131 { 1131 {
1132 start_func(); 1132 start_func();
1133 } 1133 }
@@ -1255,7 +1255,7 @@ service_started (void *cls,
1255 ctx->op = NULL; 1255 ctx->op = NULL;
1256 peers_started++; 1256 peers_started++;
1257 DEBUG("Peers Started = %d; num_peers = %d \n", peers_started, num_peers); 1257 DEBUG("Peers Started = %d; num_peers = %d \n", peers_started, num_peers);
1258 if (GNUNET_SCHEDULER_NO_TASK == successor_stats_task && peers_started == num_peers) 1258 if (NULL == successor_stats_task && peers_started == num_peers)
1259 { 1259 {
1260 DEBUG("successor_stats_task \n"); 1260 DEBUG("successor_stats_task \n");
1261 struct Collect_Stat_Context *collect_stat_cls = GNUNET_new(struct Collect_Stat_Context); 1261 struct Collect_Stat_Context *collect_stat_cls = GNUNET_new(struct Collect_Stat_Context);
diff --git a/src/dht/test_dht_api.c b/src/dht/test_dht_api.c
index 5c6913740..e4f6e5b56 100644
--- a/src/dht/test_dht_api.c
+++ b/src/dht/test_dht_api.c
@@ -59,7 +59,7 @@ struct RetryContext
59 /** 59 /**
60 * The task identifier of the retry task, so it can be cancelled. 60 * The task identifier of the retry task, so it can be cancelled.
61 */ 61 */
62 GNUNET_SCHEDULER_TaskIdentifier retry_task; 62 struct GNUNET_SCHEDULER_Task * retry_task;
63 63
64}; 64};
65 65
@@ -72,7 +72,7 @@ struct RetryContext retry_context;
72 72
73static int ok = 1; 73static int ok = 1;
74 74
75static GNUNET_SCHEDULER_TaskIdentifier die_task; 75static struct GNUNET_SCHEDULER_Task * die_task;
76 76
77 77
78#if VERBOSE 78#if VERBOSE
@@ -86,7 +86,7 @@ static void
86end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 86end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
87{ 87{
88 GNUNET_SCHEDULER_cancel (die_task); 88 GNUNET_SCHEDULER_cancel (die_task);
89 die_task = GNUNET_SCHEDULER_NO_TASK; 89 die_task = NULL;
90 GNUNET_DHT_disconnect (dht_handle); 90 GNUNET_DHT_disconnect (dht_handle);
91 dht_handle = NULL; 91 dht_handle = NULL;
92 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 92 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -105,7 +105,7 @@ end_badly ()
105 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping get request!\n"); 105 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping get request!\n");
106 GNUNET_DHT_get_stop (get_handle); 106 GNUNET_DHT_get_stop (get_handle);
107 } 107 }
108 if (retry_context.retry_task != GNUNET_SCHEDULER_NO_TASK) 108 if (retry_context.retry_task != NULL)
109 GNUNET_SCHEDULER_cancel (retry_context.retry_task); 109 GNUNET_SCHEDULER_cancel (retry_context.retry_task);
110 GNUNET_DHT_disconnect (dht_handle); 110 GNUNET_DHT_disconnect (dht_handle);
111 dht_handle = NULL; 111 dht_handle = NULL;
diff --git a/src/dht/test_dht_monitor.c b/src/dht/test_dht_monitor.c
index 98791d28f..6fc4498d1 100644
--- a/src/dht/test_dht_monitor.c
+++ b/src/dht/test_dht_monitor.c
@@ -90,12 +90,12 @@ static unsigned int NUM_PEERS = 3;
90/** 90/**
91 * Task called to disconnect peers. 91 * Task called to disconnect peers.
92 */ 92 */
93static GNUNET_SCHEDULER_TaskIdentifier timeout_task; 93static struct GNUNET_SCHEDULER_Task * timeout_task;
94 94
95/** 95/**
96 * Task to do DHT_puts 96 * Task to do DHT_puts
97 */ 97 */
98static GNUNET_SCHEDULER_TaskIdentifier put_task; 98static struct GNUNET_SCHEDULER_Task * put_task;
99 99
100static struct GNUNET_DHT_MonitorHandle **monitors; 100static struct GNUNET_DHT_MonitorHandle **monitors;
101 101
diff --git a/src/dht/test_dht_topo.c b/src/dht/test_dht_topo.c
index 311bb5597..9bd87b21e 100644
--- a/src/dht/test_dht_topo.c
+++ b/src/dht/test_dht_topo.c
@@ -71,12 +71,12 @@ static int ok = 1;
71/** 71/**
72 * Task to do DHT_puts 72 * Task to do DHT_puts
73 */ 73 */
74static GNUNET_SCHEDULER_TaskIdentifier put_task; 74static struct GNUNET_SCHEDULER_Task * put_task;
75 75
76/** 76/**
77 * Task to time out / regular shutdown. 77 * Task to time out / regular shutdown.
78 */ 78 */
79static GNUNET_SCHEDULER_TaskIdentifier timeout_task; 79static struct GNUNET_SCHEDULER_Task * timeout_task;
80 80
81/** 81/**
82 * Head of list of active GET operations. 82 * Head of list of active GET operations.