19 #ifndef PAGESPEED_KERNEL_BASE_ABSTRACT_MUTEX_H_
20 #define PAGESPEED_KERNEL_BASE_ABSTRACT_MUTEX_H_
23 #include "pagespeed/kernel/base/thread_annotations.h"
25 namespace net_instaweb {
32 virtual bool TryLock() EXCLUSIVE_TRYLOCK_FUNCTION(
true) = 0;
34 virtual void Lock() EXCLUSIVE_LOCK_FUNCTION() = 0;
36 virtual void Unlock() UNLOCK_FUNCTION() = 0;
39 virtual void DCheckLocked();
42 virtual void DCheckUnlocked();
53 void Release() UNLOCK_FUNCTION() {
69 #define ScopedMutex(x) COMPILE_ASSERT(0, mutex_lock_decl_missing_var_name)
Abstract interface for implementing a mutex.
Definition: abstract_mutex.h:28
#define ScopedMutex(x)
Definition: abstract_mutex.h:69
Helper class for lexically scoped mutexing.
Definition: abstract_mutex.h:46