diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dht/gnunet_dht_profiler.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/dht/gnunet_dht_profiler.c b/src/dht/gnunet_dht_profiler.c index 7854ac319..2f7fdde77 100644 --- a/src/dht/gnunet_dht_profiler.c +++ b/src/dht/gnunet_dht_profiler.c | |||
@@ -480,12 +480,16 @@ static void | |||
480 | cancel_get (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 480 | cancel_get (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
481 | { | 481 | { |
482 | struct ActiveContext *ac = cls; | 482 | struct ActiveContext *ac = cls; |
483 | struct Context *ctx = ac->ctx; | ||
483 | 484 | ||
484 | ac->delay_task = GNUNET_SCHEDULER_NO_TASK; | 485 | ac->delay_task = GNUNET_SCHEDULER_NO_TASK; |
485 | GNUNET_assert (NULL != ac->dht_get); | 486 | GNUNET_assert (NULL != ac->dht_get); |
486 | GNUNET_DHT_get_stop (ac->dht_get); | 487 | GNUNET_DHT_get_stop (ac->dht_get); |
487 | ac->dht_get = NULL; | 488 | ac->dht_get = NULL; |
488 | n_gets_fail++; | 489 | n_gets_fail++; |
490 | GNUNET_assert (NULL != ctx->op); | ||
491 | GNUNET_TESTBED_operation_done (ctx->op); | ||
492 | ctx->op = NULL; | ||
489 | 493 | ||
490 | /* If profiling is complete, summarize */ | 494 | /* If profiling is complete, summarize */ |
491 | if (n_active == n_gets_fail + n_gets_ok) | 495 | if (n_active == n_gets_fail + n_gets_ok) |
@@ -524,6 +528,7 @@ get_iter (void *cls, | |||
524 | { | 528 | { |
525 | struct ActiveContext *ac = cls; | 529 | struct ActiveContext *ac = cls; |
526 | struct ActiveContext *get_ac = ac->get_ac; | 530 | struct ActiveContext *get_ac = ac->get_ac; |
531 | struct Context *ctx = ac->ctx; | ||
527 | 532 | ||
528 | /* Check the keys of put and get match or not. */ | 533 | /* Check the keys of put and get match or not. */ |
529 | GNUNET_assert (0 == memcmp (key, &get_ac->hash, sizeof (struct GNUNET_HashCode))); | 534 | GNUNET_assert (0 == memcmp (key, &get_ac->hash, sizeof (struct GNUNET_HashCode))); |
@@ -535,6 +540,9 @@ get_iter (void *cls, | |||
535 | ac->dht_get = NULL; | 540 | ac->dht_get = NULL; |
536 | GNUNET_SCHEDULER_cancel (ac->delay_task); | 541 | GNUNET_SCHEDULER_cancel (ac->delay_task); |
537 | ac->delay_task = GNUNET_SCHEDULER_NO_TASK; | 542 | ac->delay_task = GNUNET_SCHEDULER_NO_TASK; |
543 | GNUNET_assert (NULL != ctx->op); | ||
544 | GNUNET_TESTBED_operation_done (ctx->op); | ||
545 | ctx->op = NULL; | ||
538 | 546 | ||
539 | total_put_path_length = total_put_path_length + put_path_length; | 547 | total_put_path_length = total_put_path_length + put_path_length; |
540 | total_get_path_length = total_get_path_length + get_path_length; | 548 | total_get_path_length = total_get_path_length + get_path_length; |
@@ -763,7 +771,10 @@ successor_stats_cont (void *cls, | |||
763 | struct GNUNET_HashCode *start_val; | 771 | struct GNUNET_HashCode *start_val; |
764 | int count = 0; | 772 | int count = 0; |
765 | struct GNUNET_HashCode *key; | 773 | struct GNUNET_HashCode *key; |
766 | 774 | ||
775 | successor_stats_task = GNUNET_SCHEDULER_NO_TASK; | ||
776 | GNUNET_TESTBED_operation_done (successor_stats_op); | ||
777 | successor_stats_op = NULL; | ||
767 | start_val =(struct GNUNET_HashCode *) GNUNET_CONTAINER_multihashmap_get(successor_peer_hashmap, | 778 | start_val =(struct GNUNET_HashCode *) GNUNET_CONTAINER_multihashmap_get(successor_peer_hashmap, |
768 | start_key); | 779 | start_key); |
769 | 780 | ||
@@ -782,12 +793,6 @@ successor_stats_cont (void *cls, | |||
782 | if (start_val == val) | 793 | if (start_val == val) |
783 | { | 794 | { |
784 | DEBUG("CIRCLE COMPLETED after %u tries", tries); | 795 | DEBUG("CIRCLE COMPLETED after %u tries", tries); |
785 | if (GNUNET_SCHEDULER_NO_TASK != successor_stats_task) | ||
786 | { | ||
787 | successor_stats_task = GNUNET_SCHEDULER_NO_TASK; | ||
788 | //FIXME: free hashmap. | ||
789 | } | ||
790 | successor_stats_op = NULL; | ||
791 | 796 | ||
792 | if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task) | 797 | if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task) |
793 | { | 798 | { |
@@ -809,7 +814,6 @@ successor_stats_cont (void *cls, | |||
809 | successor_stats_task = GNUNET_SCHEDULER_NO_TASK; | 814 | successor_stats_task = GNUNET_SCHEDULER_NO_TASK; |
810 | //FIXME: free hashmap | 815 | //FIXME: free hashmap |
811 | } | 816 | } |
812 | successor_stats_op = NULL; | ||
813 | 817 | ||
814 | if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task) | 818 | if(GNUNET_SCHEDULER_NO_TASK == successor_stats_task) |
815 | { | 819 | { |
@@ -906,7 +910,7 @@ collect_stats (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
906 | successor_stats_iterator, | 910 | successor_stats_iterator, |
907 | successor_stats_cont, cls); | 911 | successor_stats_cont, cls); |
908 | 912 | ||
909 | GNUNET_assert(successor_stats_op); | 913 | GNUNET_assert(NULL != successor_stats_op); |
910 | } | 914 | } |
911 | 915 | ||
912 | /** | 916 | /** |