#include <DQM/CSCMonitorModule/interface/CSCDQM_Lock.h>
Public Member Functions | |
const bool | isLocked () const |
const bool | isLockedByOther () const |
void | lock () |
Lock () | |
void | unlock () |
virtual | ~Lock () |
Private Attributes | |
boost::recursive_mutex::scoped_lock | lckLock |
boost::recursive_mutex | lckMutex |
bool | lockedByOther |
Definition at line 31 of file CSCDQM_Lock.h.
cscdqm::Lock::Lock | ( | ) | [inline] |
Definition at line 41 of file CSCDQM_Lock.h.
References lockedByOther, and unlock().
00041 : lckLock(lckMutex) { 00042 unlock(); 00043 lockedByOther = false; 00044 }
virtual cscdqm::Lock::~Lock | ( | ) | [inline, virtual] |
const bool cscdqm::Lock::isLocked | ( | ) | const [inline] |
const bool cscdqm::Lock::isLockedByOther | ( | ) | const [inline] |
Definition at line 67 of file CSCDQM_Lock.h.
References lockedByOther.
Referenced by cscdqm::Dispatcher::updateFractionAndEfficiencyHistos().
00067 { 00068 return lockedByOther; 00069 return false; 00070 }
void cscdqm::Lock::lock | ( | ) | [inline] |
Definition at line 48 of file CSCDQM_Lock.h.
References isLocked(), lckLock, and lockedByOther.
Referenced by CSCMonitorObject::Fill(), CSCMonitorObject::GetBinContent(), CSCMonitorObject::GetBinError(), CSCMonitorObject::GetEntries(), CSCMonitorObject::GetMaximumBin(), CSCMonitorObject::getTH1Lock(), CSCMonitorObject::SetAxisRange(), CSCMonitorObject::setAxisTitle(), CSCMonitorObject::SetBinContent(), CSCMonitorObject::SetBinError(), CSCMonitorObject::SetEntries(), CSCMonitorObject::SetMaximum(), CSCMonitorObject::SetNormFactor(), and cscdqm::EventProcessorMutex::updateFractionAndEfficiencyHistos().
00048 { 00049 if (!isLocked()) { 00050 lckLock.lock(); 00051 lockedByOther = true; 00052 } 00053 }
void cscdqm::Lock::unlock | ( | ) | [inline] |
Definition at line 55 of file CSCDQM_Lock.h.
References isLocked(), lckLock, and lockedByOther.
Referenced by cscdqm::Collection::book(), cscdqm::EventProcessor::calcEMUFractionHisto(), CSCMonitorObject::Fill(), CSCMonitorObject::GetBinContent(), CSCMonitorObject::GetBinError(), CSCMonitorObject::GetEntries(), CSCMonitorObject::GetMaximumBin(), Lock(), CSCMonitorObject::SetAxisRange(), CSCMonitorObject::setAxisTitle(), CSCMonitorObject::SetBinContent(), CSCMonitorObject::SetBinError(), CSCMonitorObject::SetEntries(), CSCMonitorObject::SetMaximum(), CSCMonitorObject::SetNormFactor(), cscdqm::EventProcessor::updateEfficiencyHistos(), and cscdqm::EventProcessorMutex::updateFractionAndEfficiencyHistos().
00055 { 00056 if (isLocked()) { 00057 lckLock.unlock(); 00058 lockedByOther = false; 00059 } 00060 }
boost::recursive_mutex::scoped_lock cscdqm::Lock::lckLock [private] |
boost::recursive_mutex cscdqm::Lock::lckMutex [private] |
Definition at line 35 of file CSCDQM_Lock.h.
bool cscdqm::Lock::lockedByOther [private] |
Definition at line 37 of file CSCDQM_Lock.h.
Referenced by isLockedByOther(), lock(), Lock(), and unlock().