* @param mtx mutex to lock
*/
Lock(Mutex* mtx) : mutex(mtx) {
- mutex->lock();
+ if (mutex)
+ mutex->lock();
}
/**
* Unlocks the wrapped mutex.
*/
~Lock() {
- mutex->unlock();
+ if (mutex)
+ mutex->unlock();
}
private:
* @param lockit true if the lock should be acquired here, false if already acquired
*/
SharedLock(RWLock* lock, bool lockit=true) : rwlock(lock) {
- if (lockit)
+ if (rwlock && lockit)
rwlock->rdlock();
}
* Unlocks the wrapped shared lock.
*/
~SharedLock() {
- rwlock->unlock();
+ if (rwlock)
+ rwlock->unlock();
}
private: