3.1.2. pfi::concurrent::condition

3.1.2.1. 概要

条件変数を扱うためのクラス

3.1.2.2. 使い方

mutexにロックをかけcondition::waitにそれを渡せば、 そのconditionがsignalされるまで待つことができる。

mutex m;
condition c;

synchronized(m){
  if (!hoge) c.wait(m); // cで待つ
  ...
  c.notify_all(); // 他の待ってる人を起こす
}

時限付きwaitもできる。

if (!c.wait(m, 10)) // 10秒だけ待ってみる