ProcessorScheduler.st
changeset 2625 b15e9a29764c
parent 2622 62acc925dfc5
child 2626 4194d370d46f
--- 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!