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
IO
objects that wait until ready for read - write_array
-
an array of
IO
objects that wait until ready for write - error_array
-
an array of
IO
objects 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.