diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2012-08-30 10:02:48 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2012-08-30 10:02:48 +0000 |
commit | 1b37017f0216d0b8f3ae3a7dea8b3cc20d74db25 (patch) | |
tree | 5532c416e616d78a75fb27f751ef7fbe6e9ef34d /lib/sanitizer_common/sanitizer_mutex.h | |
parent | 62825675e6b4f3d8459f745fe68ae30f236f82a5 (diff) |
asan/tsan: first version of "stack depot"
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@162897 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_mutex.h')
-rw-r--r-- | lib/sanitizer_common/sanitizer_mutex.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/sanitizer_common/sanitizer_mutex.h b/lib/sanitizer_common/sanitizer_mutex.h index ca3e2f9a4..6b6c25ddd 100644 --- a/lib/sanitizer_common/sanitizer_mutex.h +++ b/lib/sanitizer_common/sanitizer_mutex.h @@ -20,9 +20,9 @@ namespace __sanitizer { -class SpinMutex { +class StaticSpinMutex { public: - SpinMutex() { + void Init() { atomic_store(&state_, 0, memory_order_relaxed); } @@ -50,7 +50,15 @@ class SpinMutex { return; } } +}; +class SpinMutex : public StaticSpinMutex { + public: + SpinMutex() { + Init(); + } + + private: SpinMutex(const SpinMutex&); void operator=(const SpinMutex&); }; @@ -93,7 +101,7 @@ class GenericScopedReadLock { void operator=(const GenericScopedReadLock&); }; -typedef GenericScopedLock<SpinMutex> SpinMutexLock; +typedef GenericScopedLock<StaticSpinMutex> SpinMutexLock; } // namespace __sanitizer |