gnunet

Main GNUnet Logic
Log | Files | Refs | Submodules | README | LICENSE

commit 7b6b96f368b1314d2678b17a09d048cf03c4beaa
parent dc75dc81825dd866046b2c1c3a2dc3871c5a83a9
Author: Bart Polot <bart@net.in.tum.de>
Date:   Sat, 22 Mar 2014 22:46:02 +0000

- start test if warmup "fails"

Diffstat:
Msrc/mesh/gnunet-mesh-profiler.c | 14++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/mesh/gnunet-mesh-profiler.c b/src/mesh/gnunet-mesh-profiler.c @@ -797,8 +797,12 @@ incoming_channel (void *cls, struct GNUNET_MESH_Channel *channel, peers_warmup++; if (peers_warmup < peers_total) return NULL; - test_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, - &start_test, NULL); + if (GNUNET_SCHEDULER_NO_TASK != test_task) + { + GNUNET_SCHEDULER_cancel (test_task); + test_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, + &start_test, NULL); + } return NULL; } GNUNET_assert (peer == peers[n].incoming); @@ -869,6 +873,7 @@ start_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) enum GNUNET_MESH_ChannelOption flags; unsigned long i; + test_task = GNUNET_SCHEDULER_NO_TASK; if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0) return; @@ -969,7 +974,12 @@ peer_id_cb (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Got all IDs, starting profiler\n"); if (do_warmup) { + struct GNUNET_TIME_Relative delay; + warmup(); + delay = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, + 100 * peers_total); + test_task = GNUNET_SCHEDULER_add_delayed (delay, &start_test, NULL); return; /* start_test from incoming_channel */ } test_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,