diff -r 85a27a31a690 -r 248a8cb2ae3b Delay.st --- a/Delay.st Sat Apr 27 19:59:23 1996 +0200 +++ b/Delay.st Sat Apr 27 20:02:36 1996 +0200 @@ -56,6 +56,7 @@ [see also:] Semaphore Process ProcessorScheduler + Time AbsoluteTime (using delay : programming/timing.html#DELAY) [author:] @@ -67,7 +68,7 @@ " Check your systems resolution with: (make certain, that no other timed processes are running in the background when doing this) - + [exBegin] |d t1 t2 res| Processor activeProcess priority:24. @@ -78,62 +79,68 @@ res := (OperatingSystem millisecondTimeDeltaBetween:t2 and:t1) // 100. Transcript show:'minimum delta is about '; show:res; showCr:' milliseconds'. Processor activeProcess priority:8. + [exEnd] examples: - delaying for some time-delta: - (notice: you cannot use this without time-errors in a loop, - since the errors will accumulate; after 5 runs through the loop, - more than 5 seconds have passed) + delaying for some time-delta: + (notice: you cannot use this without time-errors in a loop, + since the errors will accumulate; after 5 runs through the loop, + more than 5 seconds have passed) - |d| - d := Delay forMilliseconds:500. - 10 timesRepeat:[d wait] + |d| + d := Delay forMilliseconds:500. + 10 timesRepeat:[d wait] - prove: - |d t1 t2 deltaT| - d := Delay forMilliseconds:500. - t1 := Time millisecondClockValue. - 10 timesRepeat:[ - d wait - ]. - t2 := Time millisecondClockValue. - deltaT := OperatingSystem millisecondTimeDeltaBetween:t2 and:t1. - Transcript show:'average delay: '; show:deltaT // 10; showCr:' milliseconds' + prove: + [exBegin] + |d t1 t2 deltaT| + d := Delay forMilliseconds:500. + t1 := Time millisecondClockValue. + 10 timesRepeat:[ + d wait + ]. + t2 := Time millisecondClockValue. + deltaT := OperatingSystem millisecondTimeDeltaBetween:t2 and:t1. + Transcript show:'average delay: '; show:deltaT // 10; showCr:' milliseconds' + [exEnd] - delaying until a specific time is reached: - (this can be used to fix the above problem) - - |now then t1 t2 deltaT| + delaying until a specific time is reached: + (this can be used to fix the above problem) + [exBegin] + |now then t1 t2 deltaT| - t1 := Time millisecondClockValue. - now := Time millisecondClockValue. - 10 timesRepeat:[ - then := OperatingSystem millisecondTimeAdd:now and:1000. - (Delay untilMilliseconds:then) wait. - now := then - ]. - t2 := Time millisecondClockValue. - deltaT := OperatingSystem millisecondTimeDeltaBetween:t2 and:t1. - Transcript show:'average delay: '; show:deltaT // 10; showCr:' milliseconds' - - instead of recreating new delays, you can also reuse it: + t1 := Time millisecondClockValue. + now := Time millisecondClockValue. + 10 timesRepeat:[ + then := OperatingSystem millisecondTimeAdd:now and:1000. + (Delay untilMilliseconds:then) wait. + now := then + ]. + t2 := Time millisecondClockValue. + deltaT := OperatingSystem millisecondTimeDeltaBetween:t2 and:t1. + Transcript show:'average delay: '; show:deltaT // 10; showCr:' milliseconds' + [exEnd] - |d now then t1 t2 deltaT| + instead of recreating new delays all over, + you can also reuse it: + [exBegin] + |d now then t1 t2 deltaT| - t1 := Time millisecondClockValue. - now := Time millisecondClockValue. - d := Delay new. - 10 timesRepeat:[ - then := OperatingSystem millisecondTimeAdd:now and:1000. - d resumtionTime:then. - d wait. - now := then - ]. - t2 := Time millisecondClockValue. - deltaT := OperatingSystem millisecondTimeDeltaBetween:t2 and:t1. - Transcript show:'average delay: '; show:deltaT // 10; showCr:' milliseconds' + t1 := Time millisecondClockValue. + now := Time millisecondClockValue. + d := Delay new. + 10 timesRepeat:[ + then := OperatingSystem millisecondTimeAdd:now and:1000. + d resumtionTime:then. + d wait. + now := then + ]. + t2 := Time millisecondClockValue. + deltaT := OperatingSystem millisecondTimeDeltaBetween:t2 and:t1. + Transcript show:'average delay: '; show:deltaT // 10; showCr:' milliseconds' + [exEnd] " ! ! @@ -261,5 +268,5 @@ !Delay class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Delay.st,v 1.20 1996-04-25 16:54:15 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Delay.st,v 1.21 1996-04-27 18:02:28 cg Exp $' ! !