создание scoped_lock максимум 200 мс

Я пытаюсь создать временную блокировку на мьютекс. Я думал, что следующий api от boost может помочь, но мне трудно найти пример кода в качестве ссылки для его использования.

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

Я хочу сделать что-то вроде этого,

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

Мой вопрос заключается в том, как создать объект posix_time :: ptime длительностью 200 мс. Я пытался создать объект time_duration, но он не является конструктором, который принимает его прямым путем.

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

Может кто-нибудь помочь мне понять, как это работает, пожалуйста?

0

Решение

Просто добавьте продолжительность к текущему времени:

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

Другие решения

Других решений пока нет …