別のスレッドがタスクキュー(ロングストーリー)の処理を完了するまで、条件変数を使用してスレッドを停止しています。だから、1つのスレッドで私がロックし、待って次のようにブースト条件変数を使用してスレッドが処理を完了するまで待機するにはどうすればよいですか?
boost::mutex::scoped_lock lock(m_mutex);
m_condition.wait(lock);
を他のスレッドには、それのタスクを完了すると、それは待機中のスレッドを知らせる:
boost::mutex::scoped_lock lock(m_parent.m_mutex);
m_parent.m_condition.notify_one();
私は見ています問題は、待機ということです私はそれに続く命令(私はxcode、fyiを使用しています)にブレークポイントを設定しない限り、スレッドは待機を停止しません。はい、これは奇妙に思えます。なぜこれが起こっているのか誰にも分かりますか?私は条件変数を誤って使用していますか?
コードは...少し混乱して第二 '' m_parent.m_mutex'同じインスタンスをm_mutex'ですか? –