<<>> <> <> <> <> <<>> DIRECTORY IO, Rope; TimerLoop: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; TimeForAPeriod: PROC [init: PROC, doit: PROC, periodMillisecs: CARD ¬ 2000] RETURNS [avgMicrosecs, initAvgMicrosecs: REAL ¬ 0.0, count, trials: CARD, worstAvg, worstInitAvg: REAL ¬ 0.0]; <> <<>> ReportForAPeriod: PROC [f: STREAM, name: ROPE, init: PROC, doit: PROC, periodMillisecs: CARD]; <> TimeByCount: PROC [init: PROC, doit: PROC, count: CARD] RETURNS [totalMicrosecs, initTotalMicrosecs: CARD, avgMicrosecs, initAvgMicrosecs: REAL]; <> END.