-- IntervalTimerTest.mesa DIRECTORY IntervalTimer, IO, Process, Commander; IntervalTimerTest: PROGRAM IMPORTS IntervalTimer, IO, Process, Commander = { out: IO.STREAM; SetStream: Commander.CommandProc = TRUSTED { out _ cmd.out; }; Test: Commander.CommandProc = TRUSTED { out _ cmd.out; out.PutRope["Should print ten large numbers, at one second intervals, beginning in one second.\n"]; Start[4 * 1000000]; Start[10 * 1000000]; Start[1 * 1000000]; Start[8 * 1000000]; Start[5 * 1000000]; Start[9 * 1000000]; Start[2 * 1000000]; Start[6 * 1000000]; Start[3 * 1000000]; Start[7 * 1000000]; }; Uest: Commander.CommandProc = TRUSTED { out _ cmd.out; out.PutRope["Should print two large numbers immediately, "]; out.PutRope["then ten large numbers, at one second intervals, beginning in one second, "]; out.PutRope["except that the numbers at seven and nine seconds should be missing.\n"]; TTart[IntervalTimer.Now[] + 4000000]; TTart[IntervalTimer.Now[] + 10000000]; TTart[IntervalTimer.Now[] + 1000000]; TTart[IntervalTimer.Now[] + 8000000]; TTart[IntervalTimer.Now[] + 5000000]; TTart[IntervalTimer.Now[] - 9000000]; TTart[IntervalTimer.Now[] + 2000000]; TTart[IntervalTimer.Now[] + 6000000]; TTart[IntervalTimer.Now[] + 3000000]; TTart[IntervalTimer.Now[] - 7000000]; }; Start: PROC[pulses: LONG CARDINAL] = { Process.Detach[FORK Wait[pulses]]; }; TTart: PROC[pulses: LONG CARDINAL] = { Process.Detach[FORK Xait[pulses]]; }; Wait: PROC[pulses: LONG CARDINAL] = { IntervalTimer.WaitForExpirationInterval[pulses]; IF out # NIL THEN out.PutF["%d\n", IO.card[pulses]]; }; Xait: PROC[pulses: LONG CARDINAL] = { IntervalTimer.WaitForExpirationTime[pulses]; IF out # NIL THEN out.PutF["%d\n", IO.card[pulses]]; }; Now: PROC RETURNS [pulses: LONG CARDINAL] = { RETURN[IntervalTimer.Now[]]; }; NowInPulses: PROC RETURNS [pulses: LONG CARDINAL] = { RETURN[IntervalTimer.NowInPulses[]]; }; Commander.Register["ITTest", Test, "Test IntervalTimer"]; Commander.Register["JTTest", Uest, "Test IntervalTimer another way"]; Commander.Register["SetStream", SetStream, "Set printout stream for IntervalTimer test"]; }. December 27, 1983 3:33 pm, Stewart, Cedar 5 tLast Edited by: Swinehart, May 16, 1984 10:03:39 am PDT Last Edited by: L. Stewart December 27, 1983 3:33 pm Ê=˜J˜J™7J™4J™˜ J˜J˜J˜J˜ —J˜J˜J˜1J˜J˜J˜šœ#Ïkœ˜,J˜J˜—J˜šœœ˜'J˜J˜cJ˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜—J˜šœœ˜'J˜J˜