本文整理汇总了C++中channel::ptr::nonce方法的典型用法代码示例。如果您正苦于以下问题:C++ ptr::nonce方法的具体用法?C++ ptr::nonce怎么用?C++ ptr::nonce使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类channel::ptr
的用法示例。
在下文中一共展示了ptr::nonce方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: safe_store
bool pending_channels::safe_store(channel::ptr channel)
{
const auto version_nonce = channel->nonce();
const auto match = [version_nonce](const channel::ptr& entry)
{
return entry->nonce() == version_nonce;
};
// Critical Section
///////////////////////////////////////////////////////////////////////////
mutex_.lock_upgrade();
const auto it = std::find_if(channels_.begin(), channels_.end(), match);
const auto found = it != channels_.end();
if (!found)
{
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mutex_.unlock_upgrade_and_lock();
channels_.push_back(channel);
mutex_.unlock();
//---------------------------------------------------------------------
return true;
}
mutex_.unlock_upgrade();
///////////////////////////////////////////////////////////////////////////
return false;
}