summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/sanitizer_mutex.h
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2013-01-14 07:51:39 +0000
committerDmitry Vyukov <dvyukov@google.com>2013-01-14 07:51:39 +0000
commitf4f51f2cc6fa936f0c65577f82e6b62989d546ee (patch)
tree34d2da3ba388fe5080f454868838454beab686b8 /lib/sanitizer_common/sanitizer_mutex.h
parent4785a776d09fb36bb2b162c3be40cd7ca017fce0 (diff)
asan/tsan: move blocking mutex from asan to sanitizer_common
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@172380 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_mutex.h')
-rw-r--r--lib/sanitizer_common/sanitizer_mutex.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/sanitizer_common/sanitizer_mutex.h b/lib/sanitizer_common/sanitizer_mutex.h
index 4372a73c1..15e1caa1b 100644
--- a/lib/sanitizer_common/sanitizer_mutex.h
+++ b/lib/sanitizer_common/sanitizer_mutex.h
@@ -67,6 +67,15 @@ class SpinMutex : public StaticSpinMutex {
void operator=(const SpinMutex&);
};
+class BlockingMutex {
+ public:
+ explicit BlockingMutex(LinkerInitialized);
+ void Lock();
+ void Unlock();
+ private:
+ uptr opaque_storage_[10];
+};
+
template<typename MutexType>
class GenericScopedLock {
public:
@@ -106,6 +115,7 @@ class GenericScopedReadLock {
};
typedef GenericScopedLock<StaticSpinMutex> SpinMutexLock;
+typedef GenericScopedLock<BlockingMutex> BlockingMutexLock;
} // namespace __sanitizer