我正在尝试在互斥锁上创建一个定时范围的锁。我认为关注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);
有人可以帮我理解它是如何运作的吗?
答案 0 :(得分:2)
只需将持续时间添加到当前时间:
auto now = boost::posix_time::microsec_clock::universal_time();