[PATCH] open_posix/pthread_sigmask/18-1: Fix race condition in signal thread join
Wenbo Ma <[email protected]>
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- .../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 -- Mailing list info: https://lists.linux.it/listinfo/ltp