From f333118ee0b23678a7cf5db76cc8c9fa083434a4 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Fri, 8 Feb 2019 20:43:26 +0000 Subject: Fix Die() after pthread_exit call on macOS Summary: Scoped interceptor should not be used when calling real pthread_exit(). On macOS C++ destructors are not called by pthread_exit(), and later check for empty thread ignore set fails. Patch by Yuri Per. Reviewers: dvyukov, vitalybuka Reviewed By: vitalybuka Subscribers: vitalybuka, thegameg, kubamracek, jfb, llvm-commits, #sanitizers Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D57963 llvm-svn: 353561 --- compiler-rt/lib/tsan/rtl/tsan_interceptors.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'compiler-rt/lib') diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc b/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc index fd0c86420f7..72ca5ae68b5 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc @@ -1051,6 +1051,9 @@ TSAN_INTERCEPTOR(int, pthread_detach, void *th) { } TSAN_INTERCEPTOR(void, pthread_exit, void *retval) { + { + SCOPED_INTERCEPTOR_RAW(pthread_exit, retval); + } REAL(pthread_exit)(retval); } -- cgit v1.2.3