X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2Futil%2FThreads.h;h=d184d5c5c82433b5521f142e886205002f97be3a;hb=b89b1d4d2cd1430c5efa5ffcb0f515365ba11f75;hp=443009ca818f5f768cc66a730f7a518848cda8b7;hpb=07b783beb349941834dbf8af3ad2c1c6ba499913;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/util/Threads.h b/xmltooling/util/Threads.h index 443009c..d184d5c 100644 --- a/xmltooling/util/Threads.h +++ b/xmltooling/util/Threads.h @@ -287,14 +287,16 @@ namespace xmltooling * @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: @@ -314,7 +316,7 @@ namespace xmltooling * @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(); } @@ -322,7 +324,8 @@ namespace xmltooling * Unlocks the wrapped shared lock. */ ~SharedLock() { - rwlock->unlock(); + if (rwlock) + rwlock->unlock(); } private: