209a210,218
>
> //
> // save the timer tick and rtc clock tick values to correctly reschedule
> // them during unserialize
> //
> Tick rtcTimerInterruptTickOffset = event.when() - curTick;
> SERIALIZE_SCALAR(rtcTimerInterruptTickOffset);
> Tick rtcClockTickOffset = event.when() - curTick;
> SERIALIZE_SCALAR(rtcClockTickOffset);
221,224c230,238
< // We're not unserializing the event here, but we need to
< // rescehedule the event since curTick was moved forward by the
< // checkpoint
< reschedule(event, curTick + event.interval);
---
> //
> // properly schedule the timer and rtc clock events
> //
> Tick rtcTimerInterruptTickOffset;
> UNSERIALIZE_SCALAR(rtcTimerInterruptTickOffset);
> reschedule(event, curTick + rtcTimerInterruptTickOffset);
> Tick rtcClockTickOffset;
> UNSERIALIZE_SCALAR(rtcClockTickOffset);
> reschedule(tickEvent, curTick + rtcClockTickOffset);