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/dht/gnunet-service-dht_neighbours.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/dht/gnunet-service-dht_neighbours.c')
-rw-r--r-- | src/dht/gnunet-service-dht_neighbours.c | 16 |
1 files changed, 8 insertions, 8 deletions
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 | */ |
425 | static GNUNET_SCHEDULER_TaskIdentifier find_peer_task; | 425 | static 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 | ||