Delay.st
author claus
Sat, 11 Dec 1993 02:03:41 +0100
changeset 14 1758392f154c
parent 9 b07612967dfa
child 25 e34a6267c79b
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
b07612967dfa Initial revision
claus
parents:
diff changeset
     1
'From Smalltalk/X, Version:2.7.3 on 31-oct-1993 at 23:49:46'!
b07612967dfa Initial revision
claus
parents:
diff changeset
     2
b07612967dfa Initial revision
claus
parents:
diff changeset
     3
Object subclass:#Delay
b07612967dfa Initial revision
claus
parents:
diff changeset
     4
         instanceVariableNames:'milliseconds'
b07612967dfa Initial revision
claus
parents:
diff changeset
     5
         classVariableNames:''
b07612967dfa Initial revision
claus
parents:
diff changeset
     6
         poolDictionaries:''
b07612967dfa Initial revision
claus
parents:
diff changeset
     7
         category:'Kernel-Processes'
b07612967dfa Initial revision
claus
parents:
diff changeset
     8
!
b07612967dfa Initial revision
claus
parents:
diff changeset
     9
b07612967dfa Initial revision
claus
parents:
diff changeset
    10
!Delay class methodsFor:'instance creation'!
b07612967dfa Initial revision
claus
parents:
diff changeset
    11
b07612967dfa Initial revision
claus
parents:
diff changeset
    12
forMilliseconds:millis
b07612967dfa Initial revision
claus
parents:
diff changeset
    13
    ^ self new milliseconds:millis
b07612967dfa Initial revision
claus
parents:
diff changeset
    14
!
b07612967dfa Initial revision
claus
parents:
diff changeset
    15
b07612967dfa Initial revision
claus
parents:
diff changeset
    16
forSeconds:seconds
b07612967dfa Initial revision
claus
parents:
diff changeset
    17
    ^ self new milliseconds:(seconds * 1000)
b07612967dfa Initial revision
claus
parents:
diff changeset
    18
! !
b07612967dfa Initial revision
claus
parents:
diff changeset
    19
b07612967dfa Initial revision
claus
parents:
diff changeset
    20
!Delay methodsFor:'accessing'!
b07612967dfa Initial revision
claus
parents:
diff changeset
    21
b07612967dfa Initial revision
claus
parents:
diff changeset
    22
milliseconds:aNumber
b07612967dfa Initial revision
claus
parents:
diff changeset
    23
    milliseconds := aNumber
b07612967dfa Initial revision
claus
parents:
diff changeset
    24
! !
b07612967dfa Initial revision
claus
parents:
diff changeset
    25
b07612967dfa Initial revision
claus
parents:
diff changeset
    26
!Delay methodsFor:'delaying'!
b07612967dfa Initial revision
claus
parents:
diff changeset
    27
b07612967dfa Initial revision
claus
parents:
diff changeset
    28
wait
b07612967dfa Initial revision
claus
parents:
diff changeset
    29
    "suspend the current process"
b07612967dfa Initial revision
claus
parents:
diff changeset
    30
b07612967dfa Initial revision
claus
parents:
diff changeset
    31
    |sema|
b07612967dfa Initial revision
claus
parents:
diff changeset
    32
b07612967dfa Initial revision
claus
parents:
diff changeset
    33
    sema := Semaphore new.
14
1758392f154c *** empty log message ***
claus
parents: 9
diff changeset
    34
    Processor currentProcess state:#timeWait.
9
b07612967dfa Initial revision
claus
parents:
diff changeset
    35
    Processor enableSemaphore:sema afterMilliseconds:milliseconds.
b07612967dfa Initial revision
claus
parents:
diff changeset
    36
    sema wait
b07612967dfa Initial revision
claus
parents:
diff changeset
    37
b07612967dfa Initial revision
claus
parents:
diff changeset
    38
    "'1' printNewline.
b07612967dfa Initial revision
claus
parents:
diff changeset
    39
     (Delay forSeconds:10) wait.
b07612967dfa Initial revision
claus
parents:
diff changeset
    40
     '2' printNewline
b07612967dfa Initial revision
claus
parents:
diff changeset
    41
    "
b07612967dfa Initial revision
claus
parents:
diff changeset
    42
! !