Parcourir la source

[2332] (unrelated) cleanup: removed unnecesary failure case in Locker.

We don't have to worry about the case lock() throws in the constructor.
In that case the destructor won't be called.
This simplification will make the code simpler, and we can also make
mutex_ member variable a const.
JINMEI Tatuya il y a 12 ans
Parent
commit
dc5492b840
1 fichiers modifiés avec 3 ajouts et 10 suppressions
  1. 3 10
      src/lib/util/threads/lock.h

+ 3 - 10
src/lib/util/threads/lock.h

@@ -85,26 +85,19 @@ public:
         ///     means an attempt to use the mutex in a wrong way (locking
         ///     a mutex second time from the same thread, for example).
         Locker(Mutex& mutex) :
-            mutex_(NULL)
+            mutex_(&mutex)
         {
-            // Set the mutex_ after we acquire the lock. This is because of
-            // exception safety. If lock() throws, it didn't work, so we must
-            // not unlock when we are destroyed. In such case, mutex_ is
-            // NULL and checked in the destructor.
             mutex.lock();
-            mutex_ = &mutex;
         }
 
         /// \brief Destructor.
         ///
         /// Unlocks the mutex.
         ~Locker() {
-            if (mutex_ != NULL) {
-                mutex_->unlock();
-            }
+            mutex_->unlock();
         }
     private:
-        Mutex* mutex_;
+        Mutex* const mutex_;
     };
     /// \brief If the mutex is currently locked
     ///