私はこのコードのプログラムを持っています:
mutable boost::condition_variable cvRun;
void CAteEngineInternal::RunSync()
{
boost::mutex m;
boost::unique_lock<boost::mutex> lock(m);
Run();
//wait for run to complete
cvRun.wait(lock);
}
int CAteEngineInternal::RunXSync(int FramesToRun)
{
boost::mutex m;
boost::unique_lock<boost::mutex> lock(m);
int retVal = RunX(FramesToRun);
//wait for run to complete
cvRun.wait(lock);
return retVal;
}
void CAteEngineInternal::OnRunCompleted(int /* status */)
{
cvRun.notify_all();
}
CLIを使用していますが、次のエラーが発生します:
basic_timed_mutex.hpp(216):致命的なエラーC1001:コンパイラで内部エラーが発生しました
このboost::mutexコードを置き換えて、このコンパイラエラーを克服する方法を見つけたいと思います。VS2012ではC#、VS2010ではC++を使用しています。CLIはVS2010にもあります。
何を使うべきか提案はありますか?クロスプラットフォームであり、VS2010でコンパイルできる必要があります。