共有メモリでの書き込み操作を待機するコードがあります。誰も書いていなければ、それは待ち続けます。
Test* Foo::Get()
{
boost::interprocess::scoped_lock<boost::interprocess::interprocess_mutex> lock ( mutex ) ; // mutex is boost::interprocess::interprocess_mutex
if ( this->check == 0 )
this->interprocessCondition.wait ( lock ) ; // interprocessCondition is boost::interprocess::interprocess_condition
...
}
サンプリングを行ったところ、CPUの約90%を消費していることがわかりました。
誰かがこのパフォーマンスの問題を解決するのを手伝ってもらえますか?添付画像をご覧ください。