wait(events, timeout) -> self | true | nil[permalink][rdoc][edit] [added by io/wait]wait(timeout = nil, mode = :read) -> self | true | nil[added by io/wait]-
selfが指定したイベント(読み込み可能・書き込み可能・優先データの受信)の準備ができるまでブロックし、準備ができたらselfを返します。待つイベントは、
IO::READABLE・IO::WRITABLE・IO::PRIORITYのビット OR(第 1 の形式)か、:read(:r・:readable)・:write(:w・:writable)・:read_write(:rw・:readable_writable)のシンボル(第 2 の形式)で指定します。シンボルを省略した場合は:readです。 Ruby 3.0 では第 2 の形式のシンボルはtimeoutより後ろに書く必要があります。読み込みを待つ場合、内部のバッファにデータがあればブロックせずに true を返します。内部のバッファとは Ruby の処理系が保持管理しているバッファのことです。つまり、読み込み可能である場合には true を返す場合と
selfを返す場合があることに注意してください。timeoutを指定した場合は、指定秒数経過するまでブロックし、タイムアウトした場合は nil を返します。- [PARAM]
events: -
待つイベントを
IO::READABLE・IO::WRITABLE・IO::PRIORITYのビット OR で指定します。 - [PARAM]
timeout: - タイムアウトまでの秒数を指定します。nil を指定すると準備ができるまで待ち続けます。
- [PARAM]
mode: -
待つイベントを
:read・:write・:read_writeなどのシンボルで指定します。
require "io/wait" r, w = IO.pipe p r.wait(0) # => nil p w.wait(IO::WRITABLE, 0).equal?(w) # => true w.write("x") p r.wait(0).equal?(r) # => true[SEE_ALSO] IO#wait_readable, IO#wait_writable, IO#wait_priority
- [PARAM]