【问题标题】:creating scoped_lock for 200 ms max最多创建 200 毫秒的 scoped_lock
【发布时间】:2013-05-23 10:07:29
【问题描述】:

我正在尝试在互斥锁上创建一个定时范围锁。我认为遵循 boost 中的 api 可能会有所帮助,但我很难找到一些示例代码作为使用它的参考。

scoped_lock(mutex_type & m, const boost::posix_time::ptime & abs_time);

我想做这样的事情,

scoped_lock<interprocess_mutex> lock (_mutex,  ? /* lock for 200 ms max */ ) ;

我的问题是如何创建一个持续时间为 200 毫秒的 posix_time::ptime 对象。我试图创建 time_duration 对象,但它们不是直接接受它的构造函数。

boost::posix_time::time_duration td = boost::posix_time::milliseconds(200);

有人可以帮我理解它是如何工作的吗?

【问题讨论】:

    标签: c++ boost boost-interprocess boost-mutex scoped-lock


    【解决方案1】:

    只需将持续时间添加到当前时间:

    auto now = boost::posix_time::microsec_clock::universal_time();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-10
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      相关资源
      最近更新 更多