--- a/ProcessorScheduler.st Wed May 07 18:05:22 1997 +0200
+++ b/ProcessorScheduler.st Wed May 07 18:17:15 1997 +0200
@@ -621,7 +621,7 @@
useIOInterrupts ifTrue:[
readFdArray do:[:fd |
- fd notNil ifTrue:[
+ (fd notNil and:[fd >= 0]) ifTrue:[
OperatingSystem enableIOInterruptsOn:fd
].
].
@@ -2300,7 +2300,7 @@
OperatingSystem clearLastErrorNumber.
self removeCorruptedFds
- ]
+ ].
] ifFalse:[
index := readFdArray indexOf:fd.
index ~~ 0 ifTrue:[
@@ -2352,21 +2352,23 @@
readFdArray keysAndValuesDo:[:idx :fd |
|rslt sema|
- rslt := OperatingSystem
- selectOnAnyReadable:(Array with:fd)
- writable:nil
- exception:nil
- withTimeOut:0.
-
- (rslt isNil and:[OperatingSystem lastErrorSymbol == #EBADF]) ifTrue:[
- ('Processor [info]: removing invalid read-select fileDescriptor: ' , fd printString) errorPrintCR.
- readFdArray at:idx put:nil.
- OperatingSystem clearLastErrorNumber.
- (sema := readSemaphoreArray at:idx) notNil ifTrue:[
- readSemaphoreArray at:idx put:nil.
- sema signal.
- ].
- ]
+ (fd notNil and:[fd >= 0]) ifTrue:[
+ rslt := OperatingSystem
+ selectOnAnyReadable:(Array with:fd)
+ writable:nil
+ exception:nil
+ withTimeOut:0.
+
+ (rslt isNil and:[OperatingSystem lastErrorSymbol == #EBADF]) ifTrue:[
+ ('Processor [info]: removing invalid read-select fileDescriptor: ' , fd printString) errorPrintCR.
+ readFdArray at:idx put:nil.
+ OperatingSystem clearLastErrorNumber.
+ (sema := readSemaphoreArray at:idx) notNil ifTrue:[
+ readSemaphoreArray at:idx put:nil.
+ sema signal.
+ ].
+ ]
+ ].
].
writeFdArray keysAndValuesDo:[:idx :fd |
@@ -2538,6 +2540,6 @@
!ProcessorScheduler class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.130 1997-05-07 10:43:19 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.131 1997-05-07 16:17:15 cg Exp $'
! !
ProcessorScheduler initialize!