[llvm] e0968ad - call ::pthread_detach on llvm_execute_on_thread_impl
Nathan James via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 2 06:41:16 PDT 2020
Author: Nathan James
Date: 2020-07-02T14:41:05+01:00
New Revision: e0968ad45948d5b7a89c468576e660381c88148f
URL: https://github.com/llvm/llvm-project/commit/e0968ad45948d5b7a89c468576e660381c88148f
DIFF: https://github.com/llvm/llvm-project/commit/e0968ad45948d5b7a89c468576e660381c88148f.diff
LOG: call ::pthread_detach on llvm_execute_on_thread_impl
Fixes all TSAN bugs in clangd
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D83039
Added:
Modified:
llvm/lib/Support/Unix/Threading.inc
Removed:
################################################################################
diff --git a/llvm/lib/Support/Unix/Threading.inc b/llvm/lib/Support/Unix/Threading.inc
index 9c1f1166b9ec..2d0aacabf092 100644
--- a/llvm/lib/Support/Unix/Threading.inc
+++ b/llvm/lib/Support/Unix/Threading.inc
@@ -94,6 +94,10 @@ llvm_execute_on_thread_impl(void *(*ThreadFunc)(void *), void *Arg,
if ((errnum = ::pthread_join(Thread, nullptr)) != 0) {
ReportErrnumFatal("pthread_join failed", errnum);
}
+ } else if (JP == JoiningPolicy::Detach) {
+ if ((errnum = ::pthread_detach(Thread)) != 0) {
+ ReportErrnumFatal("pthread_detach failed", errnum);
+ }
}
}
More information about the llvm-commits
mailing list