summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/tsan/rtl/tsan_interface_java.h
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2014-06-27 00:47:38 +0000
committerDmitry Vyukov <dvyukov@google.com>2014-06-27 00:47:38 +0000
commitfb251f51a9118a64376405a277ee6777abd7dca4 (patch)
tree5cf056ea8d02d032037086dec7025e6e79ab56ce /compiler-rt/lib/tsan/rtl/tsan_interface_java.h
parent73f72e15ac73a1a84bb5e36b5434815cc5273006 (diff)
downloadbcm5719-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.h')
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_interface_java.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interface_java.h b/compiler-rt/lib/tsan/rtl/tsan_interface_java.h
index 9ac78e074bb..6a838851e43 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interface_java.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_interface_java.h
@@ -52,6 +52,11 @@ void __tsan_java_free(jptr ptr, jptr size) INTERFACE_ATTRIBUTE;
// Can be aggregated for several objects (preferably).
// The ranges must not overlap.
void __tsan_java_move(jptr src, jptr dst, jptr size) INTERFACE_ATTRIBUTE;
+// This function must be called on the finalizer thread
+// before executing a batch of finalizers.
+// It ensures necessary synchronization between
+// java object creation and finalization.
+void __tsan_java_finalize() INTERFACE_ATTRIBUTE;
// Mutex lock.
// Addr is any unique address associated with the mutex.
OpenPOWER on IntegriCloud