[LTP] [PATCH] open_posix/pthread_sigmask/18-1: Fix race condition in signal thread join
Wenbo Ma
wenbo1.ma@intel.com
Mon Jun 15 03:29:11 CEST 2026
When WITH_SYNCHRO is defined, the signal sender threads (th_sig1 and
th_sig2) may block on sem_wait() after the main loop exits. This causes
pthread_join() to hang indefinitely since those threads never wake up.
Post to both semaphores before joining to ensure the signal threads
can proceed and exit cleanly.
Signed-off-by: Wenbo Ma <wenbo1.ma@intel.com>
---
.../conformance/interfaces/pthread_sigmask/18-1.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/18-1.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/18-1.c
index f303e9854..e4606813e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/18-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/18-1.c
@@ -293,6 +293,11 @@ int main(void)
}
while (do_it);
+#ifdef WITH_SYNCHRO
+ sem_post(&semsig1);
+ sem_post(&semsig2);
+#endif
+
if ((ret = pthread_join(th_sig1, NULL))) {
UNRESOLVED(ret, "Signal 1 sender thread join failed");
}
--
2.34.1
More information about the ltp
mailing list