
I'm trying to understand what constitutes an RTS and how a Timber program translated into C is actually executed. So, I'm reading the RTS implementations' code. In rtsARM/rts.c, in ASYNC implementation, lines 439-442 we can see the following code: if (LESS(m->baseline, now)) { m->baseline = now; // debug("^"); } Same code is present in ASYNC implementation in rtsPOSIX/rts.c, lines 354-355 That means that if the absolute time value for the baseline for the action to be scheduled is in the past, we set the baseline to the current time. However, since all the time calculations are relative to the baseline, that would mean that all the following actions to be scheduled from the one being scheduled at the moment would "drift". Is this an intended behavior? I'm not sure that's the right decision. Ivan