Mercurial > hg > bitcoin
view src/leveldb/util/mutexlock.h @ 3679:1e67262f9a28 draft default tip master
Mention that Qt3 tools can cause build problems
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Tue, 23 Oct 2012 13:17:23 -0400 |
parents | 98b459278ba3 |
children |
line wrap: on
line source
// Copyright (c) 2011 The LevelDB Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. See the AUTHORS file for names of contributors. #ifndef STORAGE_LEVELDB_UTIL_MUTEXLOCK_H_ #define STORAGE_LEVELDB_UTIL_MUTEXLOCK_H_ #include "port/port.h" namespace leveldb { // Helper class that locks a mutex on construction and unlocks the mutex when // the destructor of the MutexLock object is invoked. // // Typical usage: // // void MyClass::MyMethod() { // MutexLock l(&mu_); // mu_ is an instance variable // ... some complex code, possibly with multiple return paths ... // } class MutexLock { public: explicit MutexLock(port::Mutex *mu) : mu_(mu) { this->mu_->Lock(); } ~MutexLock() { this->mu_->Unlock(); } private: port::Mutex *const mu_; // No copying allowed MutexLock(const MutexLock&); void operator=(const MutexLock&); }; } // namespace leveldb #endif // STORAGE_LEVELDB_UTIL_MUTEXLOCK_H_