diff -r b2ad7985b2ea -r 72fe308c1ba0 ProcessorScheduler.st --- a/ProcessorScheduler.st Thu Jul 18 20:30:43 1996 +0200 +++ b/ProcessorScheduler.st Thu Jul 18 20:40:39 1996 +0200 @@ -1981,7 +1981,7 @@ The idle actions are a leftover from previous ST/X releases and will vanish (installing a low-prio process has the same effect)." - |millis doingGC| + |millis doingGC anySema| doingGC := true. [doingGC] whileTrue:[ @@ -2027,14 +2027,17 @@ "/ and no readSemaphores are present (which means that noone is waiting for input) "/ and no writeSemaphores are present - millis isNil ifTrue:[ - readSemaphoreArray do:[:sema | sema notNil ifTrue:[^ self]]. - writeSemaphoreArray do:[:sema | sema notNil ifTrue:[^ self]]. + anySema := false. + readSemaphoreArray do:[:sema | sema notNil ifTrue:[anySema := true]]. + anySema ifFalse:[ + writeSemaphoreArray do:[:sema | sema notNil ifTrue:[anySema := true]]. + ]. + anySema ifFalse:[ self anyUserProcessAtAll ifFalse:[ dispatching := false. ^ self ] - ] + ]. ]. OperatingSystem supportsSelect ifFalse:[ @@ -2050,23 +2053,19 @@ ]. millis isNil ifTrue:[ - exitWhenNoMoreUserProcesses ifTrue:[ - millis := 100 - ] ifFalse:[ - millis := 9999. - ] + millis := 9999. ] ifFalse:[ millis := millis rounded ]. self checkForInputWithTimeout:millis "Modified: 14.12.1995 / 13:37:46 / stefan" - "Modified: 18.7.1996 / 20:30:24 / cg" + "Modified: 18.7.1996 / 20:40:19 / cg" ! ! !ProcessorScheduler class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.83 1996-07-18 18:30:43 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.84 1996-07-18 18:40:39 cg Exp $' ! ! ProcessorScheduler initialize!