--- a/Unix.st Sat Feb 05 13:24:58 1994 +0100
+++ b/Unix.st Sat Feb 05 13:27:58 1994 +0100
@@ -22,7 +22,7 @@
COPYRIGHT (c) 1988 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/Attic/Unix.st,v 1.10 1994-01-12 19:11:58 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/Unix.st,v 1.11 1994-02-05 12:27:58 claus Exp $
written 1988 by claus
'!
@@ -1190,14 +1190,14 @@
|rcount wcount ecount|
- (readFdArray isNil or:[readFdArray class == Array]) ifFalse:[
- ^ self error:'argument must be an Array'
+ (readFdArray notNil and:[readFdArray class ~~ Array]) ifTrue:[
+ ^ self error:'argument must be nil or an Array'
].
- (writeFdArray isNil or:[writeFdArray class == Array]) ifFalse:[
- ^ self error:'argument must be an Array'
+ (writeFdArray notNil and:[writeFdArray class ~~ Array]) ifTrue:[
+ ^ self error:'argument must be nil or an Array'
].
- (errorFdArray isNil or:[errorFdArray class == Array]) ifFalse:[
- ^ self error:'argument must be an Array'
+ (errorFdArray notNil and:[errorFdArray class ~~ Array]) ifTrue:[
+ ^ self error:'argument must be nil or an Array'
].
rcount := readFdArray size.
wcount := writeFdArray size.
@@ -1213,7 +1213,7 @@
FD_ZERO(&wset);
FD_ZERO(&eset);
- maxF = 0;
+ maxF = -1;
for (i=0; i<_intVal(rcount);i++) {
fd = _ArrayInstPtr(readFdArray)->a_element[i];
if (fd != nil) {
@@ -1247,6 +1247,7 @@
t = _intVal(millis);
wt.tv_sec = t / 1000;
wt.tv_usec = (t % 1000) * 1000;
+
if (select(maxF+1, &rset, &wset, &eset, &wt)) {
for (i=0; i <= maxF; i++) {
if (FD_ISSET(i, &rset)