[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