[libc-commits] [libc] [libc] Fix atexit_test in hermetic mode (PR #210656)
via libc-commits
libc-commits at lists.llvm.org
Mon Jul 20 00:59:57 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Pavel Labath (labath)
<details>
<summary>Changes</summary>
We never unlocked the ThreadAtExit mutex, which meant the second call to exit deadlocked. This was detected in the unit tests as they were calling __cxa_thread_atexit from the system C library.
---
Full diff: https://github.com/llvm/llvm-project/pull/210656.diff
2 Files Affected:
- (modified) libc/src/__support/threads/thread.cpp (+1)
- (modified) libc/test/src/stdlib/CMakeLists.txt (-2)
``````````diff
diff --git a/libc/src/__support/threads/thread.cpp b/libc/src/__support/threads/thread.cpp
index ae179f068b88e..babcfdc5aea15 100644
--- a/libc/src/__support/threads/thread.cpp
+++ b/libc/src/__support/threads/thread.cpp
@@ -131,6 +131,7 @@ class ThreadAtExitCallbackMgr {
atexit_unit.callback(atexit_unit.obj);
mtx.lock();
}
+ mtx.unlock();
}
};
diff --git a/libc/test/src/stdlib/CMakeLists.txt b/libc/test/src/stdlib/CMakeLists.txt
index 6a1b0069424d3..8e77d3fd08e11 100644
--- a/libc/test/src/stdlib/CMakeLists.txt
+++ b/libc/test/src/stdlib/CMakeLists.txt
@@ -531,8 +531,6 @@ if(LLVM_LIBC_FULL_BUILD)
add_libc_test(
atexit_test
- # TODO: Fix this test in hermetic mode.
- UNIT_TEST_ONLY
SUITE
libc-stdlib-tests
SRCS
``````````
</details>
https://github.com/llvm/llvm-project/pull/210656
More information about the libc-commits
mailing list