Repeating timers
You are not required to send &TIME events every tenth of a second. You can send them at larger intervals and timers will behave as they would when the correlator generates clock ticks. For a repeating timer, a single &TIME event can make it fire multiple times. Consequently, sending an &TIME event can have a lot of overhead if it is a large time jump and there are repeating timers. For example, consider the following sequence:
1. You start the correlator and specify the -Xclock option, which sets the time to 0.
2. You inject a timer into the correlator, for example, on all wait(0.1).
3. You send an &TIME event to the correlator and this event has a relatively large value, for example, 1185898806.
The result of this sequence is that the timer fires many times because the &TIME event causes each intermediate, repeating timer to fire. (Intermediate timers are timers that are set to fire between the last-received time and the next-received time.) For the example given, the timer fires 1010 times, which can take a while to process. You can avoid this problem by doing any one of the following:
Send the correlator an
&TIME event and specify a sensible time before you set up any timers. This is likely to be your best alternative.
Send the correlator an
&TIME event and specify a sensible time before you inject any monitors.
Send the correlator an
&SETTIME event before you send the
&TIME event.