<> <> <> DIRECTORY HourGlass USING [InitializeHourglass, TickHourglass], InputFocus USING [inputEnabled, InputFocusImpl], Process USING [Detach, Pause, MsecToTicks, Ticks], <> SafeStorage USING [SetCollectionInterval], WindowManager USING [RestoreCursor]; Begin: CEDAR PROGRAM IMPORTS HourGlass, InputFocus, Process, --Runtime,-- SafeStorage, WindowManager SHARES InputFocus = BEGIN WaitingCursor: PROC = BEGIN OPEN HourGlass; aWhile: Process.Ticks = Process.MsecToTicks[100]; InitializeHourglass[56]; UNTIL InputFocus.inputEnabled DO TickHourglass[]; Process.Pause[aWhile]; ENDLOOP; WindowManager.RestoreCursor[]; <> END; START InputFocus.InputFocusImpl; TRUSTED {Process.Detach[FORK WaitingCursor]}; -- cursor for amusement during start-up [] _ SafeStorage.SetCollectionInterval[16384]; -- rumor of better performance END.