Unix.st
changeset 51 9b7ae5e18f3e
parent 42 e33491f6f260
child 63 1f0cdefb013f
--- 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)