My understanding is that a [timeout](http://en.wikipedia.org/wiki/Select_(Unix\)) of zero will cause the `select(2)` (which is what ultimately gets called) to timeout immediately if there is nothing to read. This is effectively like a `read_nonblock`, except you don't need to rescue from the exception in the event it can't read.

Of course, I could be wrong here.