使用Stroustrup示例的condition_vairable :: wait_for()问题

Notaorb

下面的示例代码来自Stroustrup C ++ 4th Ed Page1234。我在质疑这是否在他的勘误文档中未列出勘误由于超时,我在规格页面wait_for看到的内容可能会虚假返回,因此代码会引发系统错误因此,它可能不是持续时间超时的结果。not_empty == false

任何人都可以确认这是该行为还是该代码反映了wait_for行为方式?

template<typename T>
void Sync_queue::get(T& val, steady_clock::duration d)
{
    unique_lock<mutex> lck(mtx);
    bool not_empty = cond.wait_for(lck,d,[this] { return !q.empty(); });
    if (not_empty) {
        val=q.front();
        q.pop_front();
    }
    else
        throw system_error{"Sync_queue: get() timeout"};
}
山姆·瓦尔沙夫奇克

您指的是这一部分:

1)  ... It may also be unblocked spuriously.

关键的细节是,这仅描述了wait_for一个重载,即“ 1)”的含义,而不使用谓词。

第二重载是具有谓词参数的重载。第二次重载将在下面进行描述,它遵循wait_until如果您遵循的话,可以明确定义此重载:超时到期或谓词得到满足。这样就可以以预期的方式正确处理虚假唤醒。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++中的condition_variable wait_for

来自分类Dev

使用Stroustrup示例的dynamic_cast <>问题

来自分类Dev

0作为std :: condition_variable :: wait_for中的超时

来自分类Dev

使用带有超时任务列表的wait_for

来自分类Dev

Discord.py使用wait_for检查用户输入

来自分类Dev

C ++:使用Stroustrup示例的关于移动构造函数/赋值的问题

来自分类Dev

boost :: condition_variable-将wait_for与谓词一起使用

来自分类Dev

给定std :: chrono :: duration :: max后,std :: condition_variable :: wait_for立即退出

来自分类Dev

当通知简历时,condition_variable :: wait_for是否返回true

来自分类Dev

Discord.py wait_for()

来自分类Dev

Python asyncio wait_for同步

来自分类Dev

使用 Async/Wait 更新表单的问题

来自分类Dev

从Stroustrup的C ++编译模板朋友示例时遇到问题

来自分类Dev

Ansible wait_for似乎不起作用

来自分类Dev

C ++条件变量wait_for行为异常

来自分类Dev

Ansible wait_for重新启动

来自分类Dev

ansible 的 wait_for 和 wait_for_connection 的区别

来自分类Dev

discord.py wait_for没有读取消息

来自分类Dev

ec2 实例的 Ansible wait_for 连接超时

来自分类Dev

条件变量中 wait_for 函数的用途 - C++11

来自分类Dev

discord.py:wait_for() 方法的检查参数阻止执行

来自分类Dev

关于Stroustrup的图书示例中模板的value_type用法的问题

来自分类Dev

使用std :: uninitialized_copy的Stroustrup示例中的资源泄漏?

来自分类Dev

C ++:使用Stroustrup示例生成随机数?

来自分类Dev

Discord.py:wait_for('reaction_add')无法正常工作

来自分类Dev

我如何使wait_for()函数在嵌齿轮discord.py中工作?

来自分类Dev

在boost :: asio :: async_connect上等待超时失败(std :: future :: wait_for)

来自分类Dev

如何在ansible wait_for模块中打印调试消息以获取成功和失败,以测试防火墙?

来自分类Dev

条件变量的 .wait_for() 是在特定时间间隔执行后台任务的有效方法吗?

Related 相关文章

  1. 1

    C ++中的condition_variable wait_for

  2. 2

    使用Stroustrup示例的dynamic_cast <>问题

  3. 3

    0作为std :: condition_variable :: wait_for中的超时

  4. 4

    使用带有超时任务列表的wait_for

  5. 5

    Discord.py使用wait_for检查用户输入

  6. 6

    C ++:使用Stroustrup示例的关于移动构造函数/赋值的问题

  7. 7

    boost :: condition_variable-将wait_for与谓词一起使用

  8. 8

    给定std :: chrono :: duration :: max后,std :: condition_variable :: wait_for立即退出

  9. 9

    当通知简历时,condition_variable :: wait_for是否返回true

  10. 10

    Discord.py wait_for()

  11. 11

    Python asyncio wait_for同步

  12. 12

    使用 Async/Wait 更新表单的问题

  13. 13

    从Stroustrup的C ++编译模板朋友示例时遇到问题

  14. 14

    Ansible wait_for似乎不起作用

  15. 15

    C ++条件变量wait_for行为异常

  16. 16

    Ansible wait_for重新启动

  17. 17

    ansible 的 wait_for 和 wait_for_connection 的区别

  18. 18

    discord.py wait_for没有读取消息

  19. 19

    ec2 实例的 Ansible wait_for 连接超时

  20. 20

    条件变量中 wait_for 函数的用途 - C++11

  21. 21

    discord.py:wait_for() 方法的检查参数阻止执行

  22. 22

    关于Stroustrup的图书示例中模板的value_type用法的问题

  23. 23

    使用std :: uninitialized_copy的Stroustrup示例中的资源泄漏?

  24. 24

    C ++:使用Stroustrup示例生成随机数?

  25. 25

    Discord.py:wait_for('reaction_add')无法正常工作

  26. 26

    我如何使wait_for()函数在嵌齿轮discord.py中工作?

  27. 27

    在boost :: asio :: async_connect上等待超时失败(std :: future :: wait_for)

  28. 28

    如何在ansible wait_for模块中打印调试消息以获取成功和失败,以测试防火墙?

  29. 29

    条件变量的 .wait_for() 是在特定时间间隔执行后台任务的有效方法吗?

热门标签

归档