У меня есть программа с этим кодом:замена подталкивание :: мьютекс
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 и найти способ преодолеть эту ошибку. Я wokring с C# на VS2012 и C++ на VS2010. CLI также находится на VS2010.
любые предложения по использованию? мне нужно, чтобы он был кросс-платформенным и мог компилировать его в VS2010.
В STL нет библиотеки параллельного программирования. Также не существует стандартной библиотеки C++ pre-C++ 11. – juanchopanza
Используете ли вы самую последнюю версию Boost? –
Какая версия boost вы используете? –