pthread_cond

久しぶりにPthreadについて。
Ruby1.9YARVではスレッドがRubyレベル出はなく、システムのスレッドを使用するようになる。
Ruby1.9のソースを眺めていたらpthread関係で、
pthread_cond系を使用していたのを見たのを切っ掛けにメモ。


普段からPthreadは使用するが、pthread_cond系は使用したことがない。
詳しく知らないのでメモ。


とりあえずmanから。
http://www.linux.or.jp/JM/html/glibc-linuxthreads/man3/pthread_cond_wait.3.html

条件(「条件変数」の省略) は、共有データに対するある述語が満たされるまで、
スレッドが実行を停止しプロセッサを手放すことを可能にする同期装置である。
条件に対する基本的な操作は、(述語が真になった場合に) 条件を送信することと、
他のスレッドが条件を送信するまでスレッドの実行を停止して条件を待つことである。

ある条件のときのみスレッドが動いて欲しく、
それ以外のときはスレッドに動いて欲しくない場合に使用するということでいいのかな?


そのうちソースを書いてみよう。