[PATCH] D14865: [tsan] Replace POSIX semaphores with pthread condition variables in vptr_benign_race.cc

Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 20 06:20:21 PST 2015


This revision was automatically updated to reflect the committed changes.
Closed by commit rL253665: [tsan] Replace POSIX semaphores with pthread condition variables in… (authored by kuba.brecka).

Changed prior to commit:
  http://reviews.llvm.org/D14865?vs=40755&id=40774#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D14865

Files:
  compiler-rt/trunk/test/tsan/vptr_benign_race.cc

Index: compiler-rt/trunk/test/tsan/vptr_benign_race.cc
===================================================================
--- compiler-rt/trunk/test/tsan/vptr_benign_race.cc
+++ compiler-rt/trunk/test/tsan/vptr_benign_race.cc
@@ -1,28 +1,36 @@
 // RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s
 #include <pthread.h>
-#include <semaphore.h>
 #include <stdio.h>
 
 struct A {
   A() {
-    sem_init(&sem_, 0, 0);
+    pthread_mutex_init(&m, 0);
+    pthread_cond_init(&c, 0);
+    signaled = false;
   }
   virtual void F() {
   }
   void Done() {
-    sem_post(&sem_);
+    pthread_mutex_lock(&m);
+    signaled = true;
+    pthread_cond_signal(&c);
+    pthread_mutex_unlock(&m);
   }
   virtual ~A() {
   }
-  sem_t sem_;
+  pthread_mutex_t m;
+  pthread_cond_t c;
+  bool signaled;
 };
 
 struct B : A {
   virtual void F() {
   }
   virtual ~B() {
-    sem_wait(&sem_);
-    sem_destroy(&sem_);
+    pthread_mutex_lock(&m);
+    while (!signaled)
+      pthread_cond_wait(&c, &m);
+    pthread_mutex_unlock(&m);
   }
 };
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14865.40774.patch
Type: text/x-patch
Size: 1044 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151120/84d0cbb2/attachment.bin>


More information about the llvm-commits mailing list