summaryrefslogtreecommitdiffstats
path: root/compiler-rt/test/tsan/java_finalizer.cc
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2015-01-21 13:50:02 +0000
committerDmitry Vyukov <dvyukov@google.com>2015-01-21 13:50:02 +0000
commit3ab6b2347e8d940b0687fb693c861c68d1e50998 (patch)
treef09bef7d67646f964ad364f8d43a027ce82bd419 /compiler-rt/test/tsan/java_finalizer.cc
parent79ca0fd1a02132ef3d85aacbfc4ab5eab5911c08 (diff)
downloadbcm5719-llvm-3ab6b2347e8d940b0687fb693c861c68d1e50998.tar.gz
bcm5719-llvm-3ab6b2347e8d940b0687fb693c861c68d1e50998.zip
tsan: remove sleeps from tests
Even sleep(1) lead to episodical flakes on some machines. Use an invisible by tsan barrier to enforce required execution order instead. This makes the tests deterministic and faster. llvm-svn: 226659
Diffstat (limited to 'compiler-rt/test/tsan/java_finalizer.cc')
-rw-r--r--compiler-rt/test/tsan/java_finalizer.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler-rt/test/tsan/java_finalizer.cc b/compiler-rt/test/tsan/java_finalizer.cc
index d5c6a22d1e1..acbbf08ad71 100644
--- a/compiler-rt/test/tsan/java_finalizer.cc
+++ b/compiler-rt/test/tsan/java_finalizer.cc
@@ -2,13 +2,14 @@
#include "java.h"
void *Thread(void *p) {
- sleep(1);
+ barrier_wait(&barrier);
__tsan_java_finalize();
*(int*)p = 42;
return 0;
}
int main() {
+ barrier_init(&barrier, 2);
int const kHeapSize = 1024 * 1024;
jptr jheap = (jptr)malloc(kHeapSize + 8) + 8;
__tsan_java_init(jheap, kHeapSize);
@@ -17,6 +18,7 @@ int main() {
pthread_t th;
pthread_create(&th, 0, Thread, (void*)jheap);
*(int*)jheap = 43;
+ barrier_wait(&barrier);
pthread_join(th, 0);
__tsan_java_free(jheap, kBlockSize);
fprintf(stderr, "DONE\n");
OpenPOWER on IntegriCloud