У меня проблема с использованием фьючерса C ++ 11. Когда я вызываю wait()
или get()
в будущем, возвращаемом std::async
, программа получает сигнал SIGABRT, выданный из заголовка mutex
. В чем может быть проблема? Как это исправить?
Я использую g ++ 4.6 в Linux. Вставка следующего кода на ideone.com вызывает ту же проблему.
#include <future>
#include <thread>
int calculate() {
return 1;
}
int main() {
auto result = std::async(calculate);
result.wait();// <-- this aborts
int value = result.get();// <-- or this aborts as well if previous line is commented out.
return 0;
}