我在使用C ++ 11期货时遇到问题。当我在wait()
返回的未来上调用get()
或std::async
时,程序会收到来自mutex
标头的SIGABRT信号。可能是什么问题呢?怎么解决?
我在Linux上使用g ++ 4.6。将以下代码粘贴到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;
}
答案 0 :(得分:2)
可以通过将-pthread
切换添加到g++
来解决问题。