c++ - std::future 的错误用法?

标签 c++ c++11 valgrind race-condition future

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

#include <future>

int main()
{
    int ret = 0;

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

    return ret;
}

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

谁能告诉我我做错了什么?

最佳答案

代码是正确的,所以如果存在竞争条件,它会出现在 future 或其同伴的实现中。

关于c++ - std::future 的错误用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12205031/

相关文章:

c++ - 可能操作错误,随机个位数输出

C++:重载数学运算符

c++ - 从 c/c++ 代码更改 Linux 用户运行时

c++ - 指针作为函数返回类型的部分特化

c - 即使在我释放它之后,Valgrind 也发现了字符串的内存泄漏

c++ - 如何区分来自同一子网和不同 IP/用户的 sockaddr_in 结构

c++ - 重新排序可变参数

c++ - valgrind 泄漏摘要中的上下文数量指的是什么?

c++ - 这个 valgrind 错误是什么意思?

c++ - 在 std::map 中插入模板化类,并在插入时进行构造