diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2014-06-27 00:47:38 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2014-06-27 00:47:38 +0000 |
commit | fb251f51a9118a64376405a277ee6777abd7dca4 (patch) | |
tree | 5cf056ea8d02d032037086dec7025e6e79ab56ce /compiler-rt/lib/tsan/rtl/tsan_interface_java.cc | |
parent | 73f72e15ac73a1a84bb5e36b5434815cc5273006 (diff) | |
download | bcm5719-llvm-fb251f51a9118a64376405a277ee6777abd7dca4.tar.gz bcm5719-llvm-fb251f51a9118a64376405a277ee6777abd7dca4.zip |
tsan: add __tsan_java_finalize interface function
It is required to prevent false positives between object ctor and finalizer,
as otherwise they look completely unsynchronized.
llvm-svn: 211829
Diffstat (limited to 'compiler-rt/lib/tsan/rtl/tsan_interface_java.cc')
-rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_interface_java.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc b/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc index ee610188292..e63b93f4139 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc @@ -142,6 +142,12 @@ void __tsan_java_move(jptr src, jptr dst, jptr size) { } } +void __tsan_java_finalize() { + SCOPED_JAVA_FUNC(__tsan_java_finalize); + DPrintf("#%d: java_mutex_finalize()\n", thr->tid); + AcquireGlobal(thr, 0); +} + void __tsan_java_mutex_lock(jptr addr) { SCOPED_JAVA_FUNC(__tsan_java_mutex_lock); DPrintf("#%d: java_mutex_lock(%p)\n", thr->tid, addr); |