从未来检索值时的SIGABRT

时间:2011-11-01 14:14:27

标签: c++ c++11

我在使用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;
}

1 个答案:

答案 0 :(得分:2)

可以通过将-pthread切换添加到g++来解决问题。