-
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です。それ以外は、準備ができたイベントの集合です。