Chromium Code Reviews| Index: native_client_sdk/src/libraries/sdk_util/auto_lock.h |
| diff --git a/native_client_sdk/src/libraries/sdk_util/auto_lock.h b/native_client_sdk/src/libraries/sdk_util/auto_lock.h |
| index 88215d0cb31acb3c25c084be2692fe75870a3975..3dddb070ea48eaaa4f75e1095705eaff6bacf82a 100644 |
| --- a/native_client_sdk/src/libraries/sdk_util/auto_lock.h |
| +++ b/native_client_sdk/src/libraries/sdk_util/auto_lock.h |
| @@ -7,13 +7,22 @@ |
| #define LIBRARIES_SDK_UTIL_AUTO_LOCK_H_ |
| #include <pthread.h> |
| +#include "sdk_util/macros.h" |
| +#include "sdk_util/simple_lock.h" |
| + |
| + |
| +// This macro is provided to allow us to quickly instrument locking for |
| +// debugging perposes. |
|
binji
2013/07/13 00:16:48
sp: purposes
|
| +#define AUTO_LOCK(lock) \ |
| + AutoLock Lock##__LINE__(lock); |
| class AutoLock { |
| public: |
| - explicit AutoLock(pthread_mutex_t* lock) { |
| - lock_ = lock; |
| + AutoLock(const SimpleLock& lock) { |
| + lock_ = lock.mutex(); |
| pthread_mutex_lock(lock_); |
| } |
| + |
| ~AutoLock() { |
| if (lock_) pthread_mutex_unlock(lock_); |
| } |
| @@ -25,6 +34,8 @@ class AutoLock { |
| private: |
| pthread_mutex_t* lock_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(AutoLock); |
| }; |
| #endif // LIBRARIES_SDK_UTIL_AUTO_LOCK_H_ |