[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