当前位置: 首页>>代码示例>>C++>>正文


C++ mutex::native_handle方法代码示例

本文整理汇总了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.");
	}
开发者ID:danielscottt,项目名称:nvml,代码行数:27,代码来源:condition_variable.hpp

示例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"));
}
开发者ID:Roslaniec,项目名称:LLog,代码行数:8,代码来源:condition.cpp

示例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.");
	}
开发者ID:danielscottt,项目名称:nvml,代码行数:13,代码来源:condition_variable.hpp


注:本文中的mutex::native_handle方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。