Delay.st
author claus
Fri, 25 Feb 1994 14:00:53 +0100
changeset 56 be0ed17e6f85
parent 38 454b1b94a48e
child 88 81dacba7a63a
permissions -rw-r--r--
*** empty log message ***

'From Smalltalk/X, Version:2.7.3 on 31-oct-1993 at 23:49:46'!

Object subclass:#Delay
         instanceVariableNames:'milliseconds'
         classVariableNames:''
         poolDictionaries:''
         category:'Kernel-Processes'
!

!Delay class methodsFor:'instance creation'!

forMilliseconds:aNumber
    "return a new Delay object for delaying aNumber milliseconds"

    ^ self new milliseconds:aNumber
!

forSeconds:aNumber
    "return a new Delay object for delaying aNumber seconds"

    ^ self new milliseconds:(aNumber * 1000)
! !

!Delay methodsFor:'accessing'!

milliseconds:aNumber
    "set the milliseconds"

    milliseconds := aNumber
! !

!Delay methodsFor:'delaying'!

wait
    "suspend the current process"

    |sema|

    sema := Semaphore new.
    Processor activeProcess state:#timeWait.
    Processor enableSemaphore:sema afterMilliseconds:milliseconds.
    sema wait

    "'1' printNewline.
     (Delay forSeconds:10) wait.
     '2' printNewline
    "
! !