[PATCH] D14865: [tsan] Replace POSIX semaphores with pthread condition variables in vptr_benign_race.cc
Kuba Brecka via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 20 02:54:00 PST 2015
kubabrecka created this revision.
kubabrecka added reviewers: dvyukov, kcc, glider, samsonov.
kubabrecka added subscribers: llvm-commits, zaks.anna, ismailp.
OS X doesn't support POSIX semaphores (but it does have the API for it, which returns ENOSYS - "Function not implemented").
http://reviews.llvm.org/D14865
Files:
test/tsan/vptr_benign_race.cc
Index: test/tsan/vptr_benign_race.cc
===================================================================
--- test/tsan/vptr_benign_race.cc
+++ test/tsan/vptr_benign_race.cc
@@ -5,24 +5,33 @@
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.40755.patch
Type: text/x-patch
Size: 857 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151120/f6d331d6/attachment.bin>
More information about the llvm-commits
mailing list