[PATCH] D14949: [tsan] Change mutexset6.cc to use a mutex instead of spinlock

Kuba Brecka via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 24 05:56:17 PST 2015


kubabrecka created this revision.
kubabrecka added reviewers: dvyukov, samsonov, glider, kcc.
kubabrecka added subscribers: llvm-commits, zaks.anna, ismailp.

Pthread spinlocks are not available on OS X.

http://reviews.llvm.org/D14949

Files:
  test/tsan/mutexset6.cc

Index: test/tsan/mutexset6.cc
===================================================================
--- test/tsan/mutexset6.cc
+++ test/tsan/mutexset6.cc
@@ -3,7 +3,7 @@
 
 int Global;
 pthread_mutex_t mtx1;
-pthread_spinlock_t mtx2;
+pthread_mutex_t mtx2;
 pthread_rwlock_t mtx3;
 
 void *Thread1(void *x) {
@@ -17,10 +17,10 @@
 void *Thread2(void *x) {
   pthread_mutex_lock(&mtx1);
   pthread_mutex_unlock(&mtx1);
-  pthread_spin_lock(&mtx2);
+  pthread_mutex_lock(&mtx2);
   pthread_rwlock_rdlock(&mtx3);
   Global--;
-  pthread_spin_unlock(&mtx2);
+  pthread_mutex_unlock(&mtx2);
   pthread_rwlock_unlock(&mtx3);
   barrier_wait(&barrier);
   return NULL;
@@ -40,14 +40,14 @@
   // CHECK:   Mutex [[M3]] (0x{{.*}}) created at:
   // CHECK:     #1 main {{.*}}mutexset6.cc:[[@LINE+3]]
   pthread_mutex_init(&mtx1, 0);
-  pthread_spin_init(&mtx2, 0);
+  pthread_mutex_init(&mtx2, 0);
   pthread_rwlock_init(&mtx3, 0);
   pthread_t t[2];
   pthread_create(&t[0], NULL, Thread1, NULL);
   pthread_create(&t[1], NULL, Thread2, NULL);
   pthread_join(t[0], NULL);
   pthread_join(t[1], NULL);
   pthread_mutex_destroy(&mtx1);
-  pthread_spin_destroy(&mtx2);
+  pthread_mutex_destroy(&mtx2);
   pthread_rwlock_destroy(&mtx3);
 }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14949.41037.patch
Type: text/x-patch
Size: 1224 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151124/592d01ef/attachment.bin>


More information about the llvm-commits mailing list