本文整理汇总了C++中mutex::leave方法的典型用法代码示例。如果您正苦于以下问题:C++ mutex::leave方法的具体用法?C++ mutex::leave怎么用?C++ mutex::leave使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mutex
的用法示例。
在下文中一共展示了mutex::leave方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: enterMeasurement
void enterMeasurement() const{
l4_utcb_t * utcb = l4_utcb();
_lock.enter();
while(!_locked.empty() && (_measuring.find(utcb) == _measuring.end())){
_lock.leave();
l4_sleep(0);
_lock.enter();
}
++_measuring[utcb];
_lock.leave();
}
示例2: enterExclusive
void enterExclusive() const {
l4_utcb_t * utcb = l4_utcb();
_lock.enter();
while(!_locked.empty() && _locked.find(utcb) == _locked.end()){
_lock.leave();
l4_sleep(0);
_lock.enter();
}
++_locked[utcb];
while(!_measuring.empty()){
_lock.leave();
l4_sleep(0);
_lock.enter();
}
_lock.leave();
}
示例3: addMeasurement
void addMeasurement(const l4_uint32_t id, l4_uint64_t value){
GET_STATS.enterMeasurement();
_item_map_mutex.enter();
item_map_t::iterator iter = _item_map.find(id);
_item_map_mutex.leave();
if(iter != _item_map.end()){
iter->second.addMeasurement(value);
} else {
_item_map_mutex.enter();
Item & item = _item_map[id];
_item_map_mutex.leave();
item.addMeasurement(value);
std::stringstream s;
s << "0x" << std::hex << id;
item.setName(s.str());
}
GET_STATS.leaveMeasurement();
}
示例4: leaveMeasurement
void leaveMeasurement() const{
l4_utcb_t * utcb = l4_utcb();
_lock.enter();
if(--_measuring[utcb] == 0) _measuring.erase(utcb);
_lock.leave();
}
示例5: leaveExclusive
void leaveExclusive() const{
l4_utcb_t * utcb = l4_utcb();
_lock.enter();
if(--_locked[utcb] == 0) _locked.erase(utcb);
_lock.leave();
}