diff options
author | Bart Polot <bart@net.in.tum.de> | 2014-03-17 11:02:44 +0000 |
---|---|---|
committer | Bart Polot <bart@net.in.tum.de> | 2014-03-17 11:02:44 +0000 |
commit | 6ba4f04d739c78bd5ff0ef7195fb0c897b716632 (patch) | |
tree | 1e81209474f1d75a6eeb3e30a201fec3b975baed /src | |
parent | ca5b30351d47c88f23a3975d317c247e58515f7b (diff) | |
download | gnunet-6ba4f04d739c78bd5ff0ef7195fb0c897b716632.tar.gz gnunet-6ba4f04d739c78bd5ff0ef7195fb0c897b716632.zip |
- fix disconnect task scheduling
Diffstat (limited to 'src')
-rw-r--r-- | src/mesh/gnunet-mesh-profiler.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/src/mesh/gnunet-mesh-profiler.c b/src/mesh/gnunet-mesh-profiler.c index 9d9e27e5b..4ae884846 100644 --- a/src/mesh/gnunet-mesh-profiler.c +++ b/src/mesh/gnunet-mesh-profiler.c | |||
@@ -242,8 +242,7 @@ disconnect_mesh_peers (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
242 | unsigned int i; | 242 | unsigned int i; |
243 | 243 | ||
244 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 244 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
245 | "disconnecting mesh service of peers, called from line %ld\n", | 245 | "disconnecting mesh service, called from line %ld\n", line); |
246 | line); | ||
247 | disconnect_task = GNUNET_SCHEDULER_NO_TASK; | 246 | disconnect_task = GNUNET_SCHEDULER_NO_TASK; |
248 | for (i = 0; i < TOTAL_PEERS; i++) | 247 | for (i = 0; i < TOTAL_PEERS; i++) |
249 | { | 248 | { |
@@ -254,9 +253,16 @@ disconnect_mesh_peers (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
254 | continue; | 253 | continue; |
255 | 254 | ||
256 | if (NULL != peers[i].ch) | 255 | if (NULL != peers[i].ch) |
256 | { | ||
257 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "%u: channel %p\n", i, peers[i].ch); | ||
257 | GNUNET_MESH_channel_destroy (peers[i].ch); | 258 | GNUNET_MESH_channel_destroy (peers[i].ch); |
259 | } | ||
258 | if (NULL != peers[i].incoming_ch) | 260 | if (NULL != peers[i].incoming_ch) |
261 | { | ||
262 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "%u: incoming channel %p\n", | ||
263 | i, peers[i].incoming_ch); | ||
259 | GNUNET_MESH_channel_destroy (peers[i].incoming_ch); | 264 | GNUNET_MESH_channel_destroy (peers[i].incoming_ch); |
265 | } | ||
260 | } | 266 | } |
261 | GNUNET_MESH_TEST_cleanup (test_ctx); | 267 | GNUNET_MESH_TEST_cleanup (test_ctx); |
262 | if (GNUNET_SCHEDULER_NO_TASK != shutdown_handle) | 268 | if (GNUNET_SCHEDULER_NO_TASK != shutdown_handle) |
@@ -344,7 +350,6 @@ collect_stats (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
344 | if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0) | 350 | if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0) |
345 | return; | 351 | return; |
346 | 352 | ||
347 | disconnect_task = GNUNET_SCHEDULER_NO_TASK; | ||
348 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start collecting statistics...\n"); | 353 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start collecting statistics...\n"); |
349 | stats_op = GNUNET_TESTBED_get_statistics (TOTAL_PEERS, testbed_handles, | 354 | stats_op = GNUNET_TESTBED_get_statistics (TOTAL_PEERS, testbed_handles, |
350 | NULL, NULL, | 355 | NULL, NULL, |
@@ -645,18 +650,12 @@ incoming_channel (void *cls, struct GNUNET_MESH_Channel *channel, | |||
645 | 650 | ||
646 | peer = GNUNET_CONTAINER_multipeermap_get (ids, initiator); | 651 | peer = GNUNET_CONTAINER_multipeermap_get (ids, initiator); |
647 | GNUNET_assert (NULL != peer); | 652 | GNUNET_assert (NULL != peer); |
653 | GNUNET_assert (peer == peers[n].incoming); | ||
654 | GNUNET_assert (peer->dest == &peers[n]); | ||
648 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "%u <= %u %p\n", | 655 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "%u <= %u %p\n", |
649 | n, get_index (peer), channel); | 656 | n, get_index (peer), channel); |
650 | peers[n].incoming_ch = channel; | 657 | peers[n].incoming_ch = channel; |
651 | 658 | ||
652 | if (GNUNET_SCHEDULER_NO_TASK != disconnect_task) | ||
653 | { | ||
654 | GNUNET_SCHEDULER_cancel (disconnect_task); | ||
655 | disconnect_task = GNUNET_SCHEDULER_add_delayed (SHORT_TIME, | ||
656 | &disconnect_mesh_peers, | ||
657 | (void *) __LINE__); | ||
658 | } | ||
659 | |||
660 | return NULL; | 659 | return NULL; |
661 | } | 660 | } |
662 | 661 | ||
@@ -717,12 +716,6 @@ start_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
717 | 716 | ||
718 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start profiler\n"); | 717 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start profiler\n"); |
719 | 718 | ||
720 | if (GNUNET_SCHEDULER_NO_TASK != disconnect_task) | ||
721 | GNUNET_SCHEDULER_cancel (disconnect_task); | ||
722 | disconnect_task = GNUNET_SCHEDULER_add_delayed (SHORT_TIME, | ||
723 | &disconnect_mesh_peers, | ||
724 | (void *) __LINE__); | ||
725 | |||
726 | flags = GNUNET_MESH_OPTION_DEFAULT; | 719 | flags = GNUNET_MESH_OPTION_DEFAULT; |
727 | for (i = 0; i < TOTAL_PEERS; i++) | 720 | for (i = 0; i < TOTAL_PEERS; i++) |
728 | { | 721 | { |