<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Alexey,</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 15, 2021 at 6:29 PM Alexey Kodanev <<a href="mailto:aleksei.kodanev@bell-sw.com">aleksei.kodanev@bell-sw.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">musl doesn't return ESRCH for pthread_kill() if thread id is not found.<br>
<br>
POSIX only recommends to return ESRCH, and also says that pthread_kill()<br>
produces undefined behavior if tid lifetime has ended [1].<br>
<br>
[1]: <a href="https://man7.org/linux/man-pages/man3/pthread_kill.3.html" rel="noreferrer" target="_blank">https://man7.org/linux/man-pages/man3/pthread_kill.3.html</a><br>
<br>
Signed-off-by: Alexey Kodanev <<a href="mailto:aleksei.kodanev@bell-sw.com" target="_blank">aleksei.kodanev@bell-sw.com</a>><br>
---<br>
 testcases/kernel/crypto/af_alg02.c | 2 +-<br>
 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/testcases/kernel/crypto/af_alg02.c b/testcases/kernel/crypto/af_alg02.c<br>
index 31d30777c..0f5793c16 100644<br>
--- a/testcases/kernel/crypto/af_alg02.c<br>
+++ b/testcases/kernel/crypto/af_alg02.c<br>
@@ -60,7 +60,7 @@ static void run(void)<br>
<br>
        TST_CHECKPOINT_WAIT(0);<br>
<br>
-       while (pthread_kill(thr, 0) != ESRCH) {<br>
+       while (pthread_tryjoin_np(thr, NULL) == EBUSY) {<br></blockquote><div><br></div>I'm not sure if<span class="gmail_default" style="font-size:small"> </span>safe<span class="gmail_default" style="font-size:small"> enough</span> to use because it is nonstandard GNU extensions<br>and the "_np" means nonportable.</div><div class="gmail_quote"><br></div><div class="gmail_quote"><div class="gmail_default" style="font-size:small">Maybe another workaround is to define a volatile flag 'thread_complete', </div><div class="gmail_default" style="font-size:small">initialize it to '0' when thread_B starts and reset to '1' while exit, and just</div><div class="gmail_default" style="font-size:small">do a value check in the while loop of thread_A should acquire thread_B status.</div><div class="gmail_default" style="font-size:small">Is this way a bit better? </div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>