--- a/ProcessorScheduler.st Fri Sep 25 20:22:22 1998 +0200
+++ b/ProcessorScheduler.st Mon Sep 28 12:20:07 1998 +0200
@@ -968,10 +968,17 @@
index := KnownProcessIds identityIndexOf:id.
index ~~ 0 ifTrue:[
aProcess := KnownProcesses at:index.
- aProcess state ~~ #wrapWait ifTrue:[
- 'oops - resumeImmIRQ for non wrapWait process' printCR.
- ^ self
- ].
+ "/
+ "/ CG: the situation below may happen, if the wrapCall
+ "/ finishes before the process was layed to sleep
+ "/ (i.e. schedulerIRQ arrives before the threadSwitch
+ "/ was finished.
+ "/ In that case, simply resume it and everything is OK.
+ "/
+"/ aProcess state ~~ #wrapWait ifTrue:[
+"/ 'ProcSched [info]: oops - resumeImmIRQ for non wrapWait process' infoPrintCR.
+"/ ^ self
+"/ ].
pri := aProcess priority.
l := quiescentProcessLists at:pri.
"if already running, ignore"
@@ -990,7 +997,7 @@
'oops - resumeImmIRQ for unknown process' printCR.
]
- "Modified: / 23.9.1998 / 11:00:01 / cg"
+ "Modified: / 28.9.1998 / 11:36:53 / cg"
! !
!ProcessorScheduler methodsFor:'os process handling'!
@@ -2986,6 +2993,6 @@
!ProcessorScheduler class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.165 1998-09-24 10:53:44 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.166 1998-09-28 10:20:07 cg Exp $'
! !
ProcessorScheduler initialize!