创建scoped_lock最多200毫秒

时间:2013-05-23 10:07:30

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

我正在尝试在互斥锁上创建一个定时范围的锁。我认为关注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 */ ) ;

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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