--- a/Process.st Sat Jun 28 16:21:51 1997 +0200
+++ b/Process.st Sat Jun 28 16:35:22 1997 +0200
@@ -13,7 +13,8 @@
Link subclass:#Process
instanceVariableNames:'id prio state startBlock name restartable interruptActions
exitActions suspendSemaphore singleStepping
- emergencySignalHandler suspendActions creatorId processGroupId'
+ emergencySignalHandler suspendActions creatorId processGroupId
+ interruptsDisabled'
classVariableNames:'TerminateSignal RestartSignal CoughtSignals'
poolDictionaries:''
category:'Kernel-Processes'
@@ -686,11 +687,18 @@
interruptedIn:aContext
"evaluate my interrupt-actions.
- The process will go back to where it got interrupted
- after doing this."
+ This is indirectly called by the VM, when some #interruptWith: action
+ was scheduled for the process, and the process is resumed.
+ The process will go back to where it got interrupted after doing this."
|action|
+ interruptsDisabled == true ifTrue:[
+ "/ no, I dont want interrupts right now;
+ "/ try again later.
+ ^ false
+ ].
+
[interruptActions size > 0] whileTrue:[
self uninterruptablyDo:[
action := interruptActions removeFirst
@@ -701,7 +709,8 @@
action value
]
].
- interruptActions := nil
+ interruptActions := nil.
+ ^ true
"Created: 18.10.1996 / 20:43:39 / cg"
"Modified: 18.10.1996 / 20:47:20 / cg"
@@ -1341,6 +1350,6 @@
!Process class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Process.st,v 1.78 1997-06-16 18:21:30 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Process.st,v 1.79 1997-06-28 14:35:22 cg Exp $'
! !
Process initialize!