I don't have much experience with Ruby, but I have a lot of experience with libc, and I believe that yes, it is safe. The odds are pretty good, which is "done" implemented in terms of select () or poll () ...
"ready" select(), timeval tv_sec tv_usec, "ready" , ... -