From: Bjorn Borud Date: 2006-11-01T11:45:05+09:00 Subject: Re: Nonblocking IO read [Tom Pollard ] | | The select() function (Kernel#select, in Ruby) is the standard way to | do IO multiplexing under Unix. You give it a list of file handles on | which you're waiting to be able to read or write, and it returns when | one or more of them is ready. Windows provides a select() function, | too, but it only supports sockets (not pipes or ordinary file IO.) if memory serves, a select(2) on a file descriptors representing a (disk) file only had defined semantics when used to wait on mandatory locking and is not used for ensuring that a read(2) or write(2) will not block. (I might be in error since it has been a while since I looked into it). -Bj�rn