[llvm-branch-commits] [NFC][sanitizer] Check suspended threads outside `ThreadSuspender::SuspendThread` (PR #111943)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Oct 10 20:56:42 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Vitaly Buka (vitalybuka)
<details>
<summary>Changes</summary>
Allows to distinguish failure from stopped threads.
---
Full diff: https://github.com/llvm/llvm-project/pull/111943.diff
1 Files Affected:
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp (+5-4)
``````````diff
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
index 6ebca965f6a334..ebe7b6f2ee8cc2 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
@@ -137,10 +137,6 @@ class ThreadSuspender {
};
bool ThreadSuspender::SuspendThread(tid_t tid) {
- // Are we already attached to this thread?
- // Currently this check takes linear time, however the number of threads is
- // usually small.
- if (suspended_threads_list_.ContainsTid(tid)) return false;
int pterrno;
if (internal_iserror(internal_ptrace(PTRACE_ATTACH, tid, nullptr, nullptr),
&pterrno)) {
@@ -226,6 +222,11 @@ bool ThreadSuspender::SuspendAllThreads() {
break;
}
for (tid_t tid : threads) {
+ // Are we already attached to this thread?
+ // Currently this check takes linear time, however the number of threads
+ // is usually small.
+ if (suspended_threads_list_.ContainsTid(tid))
+ continue;
if (SuspendThread(tid))
retry = true;
else
``````````
</details>
https://github.com/llvm/llvm-project/pull/111943
More information about the llvm-branch-commits
mailing list