aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2014-03-17 11:02:44 +0000
committerBart Polot <bart@net.in.tum.de>2014-03-17 11:02:44 +0000
commit6ba4f04d739c78bd5ff0ef7195fb0c897b716632 (patch)
tree1e81209474f1d75a6eeb3e30a201fec3b975baed /src
parentca5b30351d47c88f23a3975d317c247e58515f7b (diff)
downloadgnunet-6ba4f04d739c78bd5ff0ef7195fb0c897b716632.tar.gz
gnunet-6ba4f04d739c78bd5ff0ef7195fb0c897b716632.zip
- fix disconnect task scheduling
Diffstat (limited to 'src')
-rw-r--r--src/mesh/gnunet-mesh-profiler.c27
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 {