X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FTimerEvent.test.cc;h=6a5704a7e17a16fe2e45f5947889c2463ff165e3;hb=b89e3166f7680755683dccee5e48cb3a820185c0;hp=ae91a5635045f67c9bca4ddbbfb369ab6dbe6c3f;hpb=b86aa425ebc96156dd6f7b3c87b07d722513278f;p=senf.git diff --git a/Scheduler/TimerEvent.test.cc b/Scheduler/TimerEvent.test.cc index ae91a56..6a5704a 100644 --- a/Scheduler/TimerEvent.test.cc +++ b/Scheduler/TimerEvent.test.cc @@ -100,9 +100,9 @@ namespace { void jitterCb(senf::scheduler::TimerEvent & tm) { - std::cerr << senf::scheduler::now() << ' ' << tm.timeout() << '\n'; + //std::cerr << "diff:" << senf::ClockService::in_microseconds( senf::scheduler::now() - tm.timeout()) << '\n'; count ++; - delay += senf::scheduler::now() - tm.timeout(); + delay += senf::ClockService::in_microseconds( senf::scheduler::now() - tm.timeout()); haveCb = true; tm.timeout(randomDelay()); } @@ -118,28 +118,37 @@ namespace { std::cerr << senf::scheduler::now() << '\n'; } + void idleCb(senf::scheduler::TimerEvent & tm) + { + tm.timeout( senf::scheduler::now()); + } + void jitterTest() { count = 0; delay = 0; - senf::scheduler::EventHook pre ("jitterTest::preCb", &preCb, - senf::scheduler::EventHook::PRE); - senf::scheduler::EventHook post ("jitterTest::postCb", &postCb, - senf::scheduler::EventHook::POST); - - senf::scheduler::TimerEvent tm1 ("jitterTest::tm1", boost::bind(&jitterCb, boost::ref(tm1)), - randomDelay()); - senf::scheduler::TimerEvent tm2 ("jitterTest::tm2", boost::bind(&jitterCb, boost::ref(tm2)), - randomDelay()); - senf::scheduler::TimerEvent tm3 ("jitterTest::tm3", boost::bind(&jitterCb, boost::ref(tm3)), - randomDelay()); +// senf::scheduler::EventHook pre ("jitterTest::preCb", &preCb, +// senf::scheduler::EventHook::PRE); +// senf::scheduler::EventHook post ("jitterTest::postCb", &postCb, +// senf::scheduler::EventHook::POST); + + senf::scheduler::TimerEvent tm1 ( + "jitterTest::tm1", boost::bind(&jitterCb, boost::ref(tm1)), randomDelay()); + senf::scheduler::TimerEvent tm2 ( + "jitterTest::tm2", boost::bind(&jitterCb, boost::ref(tm2)), randomDelay()); + senf::scheduler::TimerEvent tm3 ( + "jitterTest::tm3", boost::bind(&jitterCb, boost::ref(tm3)), randomDelay()); + // enabled "Idle"-Event will degrade scheduling delay + //senf::scheduler::TimerEvent idle ( + // "jitterTest::idle", boost::bind(&idleCb, boost::ref(idle)), senf::scheduler::now()); + senf::scheduler::TimerEvent timeout("jitterTest::timeout", &senf::scheduler::terminate, senf::scheduler::now() + senf::ClockService::seconds(5)); senf::scheduler::process(); - std::cerr << "Average scheduling delay: " << delay/count << "\n"; + std::cerr << "Average scheduling delay: " << delay/count << " microseconds\n"; } }