Ruby 4.0 リファレンスマニュアル

function rb_wait_for_single_fd

[edit]
int rb_wait_for_single_fd(int fd, int events, struct timeval *tv)

1 つのファイルディスクリプタ fd が、指定したイベントのどれかで準備できるまでブロックします。タイムアウトも指定できます。複数のファイルディスクリプタを待つときは rb_thread_fd_select を使います。

events には次の値の組み合わせを指定します。

  • RB_WAITFD_IN -- 通常のデータが読み込み可能になるのを待ちます。
  • RB_WAITFD_OUT -- 書き込み可能になるのを待ちます。
  • RB_WAITFD_PRI -- 緊急データが読み込み可能になるのを待ちます。

tv に NULL を指定すると、無期限に待ちます。環境によっては tv が更新されることも、更新されないこともあります(POSIX はどちらも許します)。移植性のあるプログラムでは、更新されることを仮定しないでください。

この関数は非推奨です。新しく書くコードでは、rb_io_maybe_wait を使ってください。

[PARAM] fd:
待つファイルディスクリプタです。
[PARAM] events:
待つイベントの集合です。
[PARAM] tv:
タイムアウトです。NULL なら無期限に待ちます。
[RETURN]
タイムアウトしたときは 0、select(2) が失敗したときは -1 です。それ以外は、準備ができたイベントの集合です。