<> <> <> DIRECTORY System USING [GetClockPulses, Microseconds, Pulses, PulsesToMicroseconds]; IntervalTimer: CEDAR DEFINITIONS IMPORTS System = { <> <> <<>> <> <<>> Microseconds: TYPE = System.Microseconds; Now: PROCEDURE RETURNS[time: Microseconds] = INLINE { RETURN [System.PulsesToMicroseconds[System.GetClockPulses[]]]; }; WaitForExpirationTime: PROCEDURE[time: Microseconds]; <> WaitForExpirationInterval: PROCEDURE[microseconds: INT]; <> <> Pulses: TYPE = System.Pulses; <> NowInPulses: PROCEDURE RETURNS[time: Pulses] = INLINE { RETURN [System.GetClockPulses[]]; }; WaitForExpirationTimeInPulses: PROCEDURE[time: Pulses]; <> WaitForExpirationIntervalInPulses: PROCEDURE[pulses: INT]; <> TooManyWaiters: ERROR; }.