boost::condition cond;
boost::recursive_mutex mutex;
for(;;)
{
D * d = nullptr;
while(cb.pop(d))
{
}
boost::lock_guard<boost::recursive_mutex> lock(**mutex**);
cond.wait(**mutex**);
}
while(1)
{
getchar();
for(int i = 0 ; i < 1000 ; ++i)
{
cb.push(new D(i));
boost::lock_guard<boost::recursive_mutex> lock(**mutex**);
cond.notify_one();
}
}
私の疑問はミューテックスについてですが、私はミューテックスオブジェクトだけが必要ですか?boost :: wait boost :: conditionの正しい使い方
EDIT:
CBは循環バッファです。 一種のプロデューサ - コンシューマパターンを実装したい
私はwaitとnotify_oneに同じmutexを使用する必要がありますか?
あなたは何をしようとしていますか? cbとは何ですか?これらの無限ループはなぜですか? – bdonlan
ああ、 'nullptr'のための+1: – bdonlan