IO.select(read_array
[, write_array
[, error_array
[, timeout]]]) â array or nil
[, write_array
[, error_array
[, timeout]]]) â array or nil
Class Public methods
Calls select(2) system call. It monitors given arrays of IO
objects, waits one or more of IO objects ready for reading,
are ready for writing, and have pending exceptions respectably, and returns
an array that contains arrays of those IO objects.
It will return nil if optional timeout value is given
and no IO object is ready in timeout seconds.
Parameters
- read_array
-
an array of
IOobjects that wait until ready for read - write_array
-
an array of
IOobjects that wait until ready for write - error_array
-
an array of
IOobjects that wait for exceptions - timeout
-
a numeric value in second
Example
rp, wp = IO.pipe
mesg = "ping "
100.times {
rs, ws, = IO.select([rp], [wp])
if r = rs[0]
ret = r.read(5)
print ret
case ret
when /ping/
mesg = "pong\n"
when /pong/
mesg = "ping "
end
end
if w = ws[0]
w.write(mesg)
end
}
produces:
ping pong ping pong ping pong (snipped) ping
Please login to continue.