1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef LIBRARIES_SDK_UTIL_AUTO_LOCK_H_
6 #define LIBRARIES_SDK_UTIL_AUTO_LOCK_H_
9 #include "sdk_util/macros.h"
10 #include "sdk_util/simple_lock.h"
14 // This macro is provided to allow us to quickly instrument locking for
15 // debugging purposes.
16 #define AUTO_LOCK(lock) \
17 ::sdk_util::AutoLock Lock##__LINE__(lock);
21 AutoLock(const SimpleLock
& lock
) {
23 pthread_mutex_lock(lock_
);
31 if (lock_
) pthread_mutex_unlock(lock_
);
36 pthread_mutex_t
* lock_
;
38 DISALLOW_COPY_AND_ASSIGN(AutoLock
);
41 } // namespace sdk_util
43 #endif // LIBRARIES_SDK_UTIL_AUTO_LOCK_H_