TimerEvent fields were renamed; timer pointer removed

This commit is contained in:
Pavel Kirienko 2014-03-14 01:09:13 +04:00
parent 6d584734bb
commit cefc346ebb
3 changed files with 12 additions and 18 deletions

View File

@ -17,14 +17,12 @@ class Timer;
struct TimerEvent
{
MonotonicTime scheduled_deadline;
MonotonicTime current_timestamp;
Timer* timer;
MonotonicTime scheduled_time;
MonotonicTime real_time;
TimerEvent(Timer* timer, MonotonicTime scheduled_deadline, MonotonicTime current_timestamp)
: scheduled_deadline(scheduled_deadline)
, current_timestamp(current_timestamp)
, timer(timer)
TimerEvent(MonotonicTime scheduled_time, MonotonicTime real_time)
: scheduled_time(scheduled_time)
, real_time(real_time)
{ }
};

View File

@ -12,13 +12,13 @@ void Timer::handleDeadline(MonotonicTime current_timestamp)
{
assert(!isRunning());
const MonotonicTime scheduled_deadline = getDeadline();
const MonotonicTime scheduled_time = getDeadline();
if (period_ < MonotonicDuration::getInfinite())
startWithDeadline(scheduled_deadline + period_);
startWithDeadline(scheduled_time + period_);
// Application can re-register the timer with different params, it's OK
handleTimerEvent(TimerEvent(this, scheduled_deadline, current_timestamp));
handleTimerEvent(TimerEvent(scheduled_time, current_timestamp));
}
void Timer::startOneShotWithDeadline(MonotonicTime deadline)

View File

@ -60,10 +60,8 @@ TEST(Scheduler, Timers)
ASSERT_EQ(0, sch.spin(start_ts + durMono(1000000)));
ASSERT_EQ(1, tcc.events_a.size());
ASSERT_TRUE(areTimestampsClose(tcc.events_a[0].scheduled_deadline, start_ts + durMono(100000)));
ASSERT_TRUE(areTimestampsClose(tcc.events_a[0].current_timestamp,
tcc.events_a[0].scheduled_deadline));
ASSERT_EQ(&a, tcc.events_a[0].timer);
ASSERT_TRUE(areTimestampsClose(tcc.events_a[0].scheduled_time, start_ts + durMono(100000)));
ASSERT_TRUE(areTimestampsClose(tcc.events_a[0].scheduled_time, tcc.events_a[0].real_time));
ASSERT_LT(900, tcc.events_b.size());
ASSERT_GT(1100, tcc.events_b.size());
@ -71,10 +69,8 @@ TEST(Scheduler, Timers)
uavcan::MonotonicTime next_expected_deadline = start_ts + durMono(1000);
for (unsigned int i = 0; i < tcc.events_b.size(); i++)
{
ASSERT_TRUE(areTimestampsClose(tcc.events_b[i].scheduled_deadline, next_expected_deadline));
ASSERT_TRUE(areTimestampsClose(tcc.events_b[i].current_timestamp,
tcc.events_b[i].scheduled_deadline));
ASSERT_EQ(&b, tcc.events_b[i].timer);
ASSERT_TRUE(areTimestampsClose(tcc.events_b[i].scheduled_time, next_expected_deadline));
ASSERT_TRUE(areTimestampsClose(tcc.events_b[i].scheduled_time, tcc.events_b[i].real_time));
next_expected_deadline += durMono(1000);
}
}