From: mrchameleon@... (Chris Reay) Date: 2004-06-10T07:13:40+09:00 Subject: Re: oddities with select Ben Giddings wrote in message news:<40C720A2.4070403@infofiend.com>... > > def internal_read(timeout=DEFAULT_TIMEOUT, stop_pattern=nil) > retval = "" > > timed_out = false > > begin > timeout(timeout) do > while true > if select([@sock], [], [], 0.1) > retval += @sock.recv(256) > if stop_pattern > if retval =~ stop_pattern > break > end > end > end > end > end > rescue Timeout::Error > timed_out = true > end A reference TFM shows that select(rdArr, , , ) returns anArray or nil. [[mySock], [], []] == true returns false (I suppose). Hth Chris