SIGABRT при получении значения из будущего - PullRequest
3 голосов
/ 01 ноября 2011

У меня проблема с использованием фьючерса 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;
}

1 Ответ

2 голосов
/ 01 ноября 2011

Проблема может быть решена добавлением переключателя -pthread в g++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...