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
+5 -7
View File
@@ -17,14 +17,12 @@ class Timer;
struct TimerEvent struct TimerEvent
{ {
MonotonicTime scheduled_deadline; MonotonicTime scheduled_time;
MonotonicTime current_timestamp; MonotonicTime real_time;
Timer* timer;
TimerEvent(Timer* timer, MonotonicTime scheduled_deadline, MonotonicTime current_timestamp) TimerEvent(MonotonicTime scheduled_time, MonotonicTime real_time)
: scheduled_deadline(scheduled_deadline) : scheduled_time(scheduled_time)
, current_timestamp(current_timestamp) , real_time(real_time)
, timer(timer)
{ } { }
}; };
+3 -3
View File
@@ -12,13 +12,13 @@ void Timer::handleDeadline(MonotonicTime current_timestamp)
{ {
assert(!isRunning()); assert(!isRunning());
const MonotonicTime scheduled_deadline = getDeadline(); const MonotonicTime scheduled_time = getDeadline();
if (period_ < MonotonicDuration::getInfinite()) if (period_ < MonotonicDuration::getInfinite())
startWithDeadline(scheduled_deadline + period_); startWithDeadline(scheduled_time + period_);
// Application can re-register the timer with different params, it's OK // 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) void Timer::startOneShotWithDeadline(MonotonicTime deadline)
+4 -8
View File
@@ -60,10 +60,8 @@ TEST(Scheduler, Timers)
ASSERT_EQ(0, sch.spin(start_ts + durMono(1000000))); ASSERT_EQ(0, sch.spin(start_ts + durMono(1000000)));
ASSERT_EQ(1, tcc.events_a.size()); 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].scheduled_time, start_ts + durMono(100000)));
ASSERT_TRUE(areTimestampsClose(tcc.events_a[0].current_timestamp, ASSERT_TRUE(areTimestampsClose(tcc.events_a[0].scheduled_time, tcc.events_a[0].real_time));
tcc.events_a[0].scheduled_deadline));
ASSERT_EQ(&a, tcc.events_a[0].timer);
ASSERT_LT(900, tcc.events_b.size()); ASSERT_LT(900, tcc.events_b.size());
ASSERT_GT(1100, 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); uavcan::MonotonicTime next_expected_deadline = start_ts + durMono(1000);
for (unsigned int i = 0; i < tcc.events_b.size(); i++) 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].scheduled_time, next_expected_deadline));
ASSERT_TRUE(areTimestampsClose(tcc.events_b[i].current_timestamp, ASSERT_TRUE(areTimestampsClose(tcc.events_b[i].scheduled_time, tcc.events_b[i].real_time));
tcc.events_b[i].scheduled_deadline));
ASSERT_EQ(&b, tcc.events_b[i].timer);
next_expected_deadline += durMono(1000); next_expected_deadline += durMono(1000);
} }
} }