3

我已经将我的一个错误归结为这个小片段,但我不明白为什么它不起作用。

#include <future>

int main()
{
    int ret = 0;

    std::future<int> parseSentence = std::async(std::launch::async, []() { return 3;} );
    ret = parseSentence.get();  

    return ret;
}

代码有效,但 helgrind 发现发生了竞争情况。由于日志有点长,我把它放在一个单独的文件中,可以在这里找到。

谁能告诉我我在这里做错了什么?

4

1 回答 1

4

代码是正确的,因此如果存在竞争条件,则它在实现future或其同伴中。

于 2012-08-30T21:38:45.990 回答