本文整理汇总了C++中mutex::native_handle方法的典型用法代码示例。如果您正苦于以下问题:C++ mutex::native_handle方法的具体用法?C++ mutex::native_handle怎么用?C++ mutex::native_handle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mutex
的用法示例。
在下文中一共展示了mutex::native_handle方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
std::cv_status
wait_until_impl(
mutex &lock,
const std::chrono::time_point<Clock, Duration> &abs_timeout)
{
PMEMobjpool *pop = pmemobj_pool_by_ptr(this);
/* convert to my clock */
const typename Clock::time_point their_now = Clock::now();
const clock_type::time_point my_now = clock_type::now();
const auto delta = abs_timeout - their_now;
const auto my_rel = my_now + delta;
struct timespec ts = detail::timepoint_to_timespec(my_rel);
auto ret = pmemobj_cond_timedwait(pop, &this->pcond,
lock.native_handle(), &ts);
if (ret == 0)
return std::cv_status::no_timeout;
else if (ret == ETIMEDOUT)
return std::cv_status::timeout;
else
throw lock_error(ret, std::system_category(),
"Error waiting on a condition "
"variable.");
}
示例2:
void
condition::wait(mutex &m)
{
pthread_mutex_t* the_mutex = m.native_handle();
int const res = pthread_cond_wait(&c, the_mutex);
if (res) boost::throw_exception(
boost::thread_resource_error(res, "pthread_cond_wait failed"));
}
示例3: lock_error
/**
* Internal implementation of the wait call.
*/
void
wait_impl(mutex &lock)
{
PMEMobjpool *pop = pmemobj_pool_by_ptr(this);
if (int ret = pmemobj_cond_wait(pop, &this->pcond,
lock.native_handle()))
throw lock_error(ret, std::system_category(),
"Error waiting on a condition "
"variable.");
}