diff -r 909f31cc9b0b -r f82adeef20af ProcessorScheduler.st --- a/ProcessorScheduler.st Fri Aug 01 00:33:40 1997 +0200 +++ b/ProcessorScheduler.st Tue Aug 05 16:06:35 1997 +0200 @@ -2264,7 +2264,7 @@ "this is called, when there is absolutely nothing to do; hard wait for either input to arrive or a timeout to occur." - |fd index sema action wasBlocked| + |fd index sema action wasBlocked err| "/ must enable interrupts, to be able to get out of a "/ long wait (especially, to handle sigChild in the meantime) @@ -2284,14 +2284,19 @@ ]. fd isNil ifTrue:[ - (OperatingSystem lastErrorSymbol == #EBADF) ifTrue:[ - - "/ mhmh - one of the fd's given to me is corrupt. - "/ find out which one .... and remove it - - OperatingSystem clearLastErrorNumber. - self removeCorruptedFds - ]. + (err := OperatingSystem lastErrorSymbol) notNil ifTrue:[ + err == #EBADF ifTrue:[ + + "/ mhmh - one of the fd's given to me is corrupt. + "/ find out which one .... and remove it + + 'OperatingSystem [warning]: bad FD in select - clearing' infoPrintCR. + OperatingSystem clearLastErrorNumber. + self removeCorruptedFds + ] ifFalse:[ + 'OperatingSystem [warning]: error in select: ' infoPrint. err infoPrintCR. + ]. + ] ] ifFalse:[ index := readFdArray indexOf:fd. index ~~ 0 ifTrue:[ @@ -2531,6 +2536,6 @@ !ProcessorScheduler class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.135 1997-06-28 15:05:34 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.136 1997-08-05 14:06:35 cg Exp $' ! ! ProcessorScheduler initialize!