time_t begintime = time(NULL);
// advance the recent buffer if enough time has passed.
- if (begintime - last_update_time)
- myObjectRuntime.AdvanceBy((begintime - last_update_time)/time_quantum);
+ time_t delta = (begintime - last_rotate_time);
+ if (delta > time_quantum) {
+ myObjectRuntime.AdvanceBy(delta/time_quantum);
+ last_rotate_time = begintime - (delta % time_quantum);
+ }
... do some work
