[tsan] Fix deadlock_detector_stress_test.cc testcase for OS X

On OS X, we don't have pthread spinlocks, let's just use a regular mutex instead. Secondly, pthread_rwlock_t is much larger (200 bytes), so `char padding_[64 - sizeof(pthread_rwlock_t)]` actually underflows.

Differential Revision: http://reviews.llvm.org/D14862

llvm-svn: 253659
This commit is contained in:
Kuba Brecka 2015-11-20 11:13:36 +00:00
parent 8aa56d3cc8
commit 1a26ff7d17
1 changed files with 5 additions and 1 deletions

View File

@ -56,6 +56,7 @@ class PthreadRecursiveMutex : public PthreadMutex {
static bool supports_recursive_lock() { return true; }
};
#ifndef __APPLE__
class PthreadSpinLock {
public:
PthreadSpinLock() { assert(0 == pthread_spin_init(&mu_, 0)); }
@ -76,6 +77,9 @@ class PthreadSpinLock {
pthread_spinlock_t mu_;
char padding_[64 - sizeof(pthread_spinlock_t)];
};
#else
class PthreadSpinLock : public PthreadMutex { };
#endif
class PthreadRWLock {
public:
@ -95,7 +99,7 @@ class PthreadRWLock {
private:
pthread_rwlock_t mu_;
char padding_[64 - sizeof(pthread_rwlock_t)];
char padding_[256 - sizeof(pthread_rwlock_t)];
};
class LockTest {