Delay.st
author claus
Mon, 20 Dec 1993 00:40:23 +0100
changeset 25 e34a6267c79b
parent 14 1758392f154c
child 38 454b1b94a48e
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:millis
    ^ self new milliseconds:millis
!

forSeconds:seconds
    ^ self new milliseconds:(seconds * 1000)
! !

!Delay methodsFor:'accessing'!

milliseconds:aNumber
    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
    "
! !