現在の投稿タイトルがそれについて述べているように、ブースト boost::interprocess::interprocess_condition::wait は、待機中にミューテックスをアトミックにロック解除することを想定していますが、そうではありません。
次のコードでは:
boost::interprocess::scoped_lock< boost::interprocess::interprocess_mutex > state_access_lock(impl->state->state_access_mut);
impl->state->state_access_cond.wait(state_access_lock);
VS2010 でデバッグ モードに入ると、一時停止を押して、待機中に state_access_lock がまだロックされていることに驚きました。
しかし、それはブーストのドキュメントがここで言っていることではありません。
誰か提案がありますか?
ありがとう。