Date: Thu, 19 Dec 2024 16:39:13 +0000 From: bugzilla-noreply@freebsd.org To: threads@FreeBSD.org Subject: [Bug 283101] pthread_cancel() doesn't cancel a thread that's currently in pause() Message-ID: <bug-283101-13406-SVIhauGLzR@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-283101-13406@https.bugs.freebsd.org/bugzilla/> References: <bug-283101-13406@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283101 --- Comment #14 from Konstantin Belousov <kib@FreeBSD.org> --- So the victim (would be cancelled) thread has cancel_pending = 1, which mean that the main thread successfully executed _thr_cancel() against it. The actions of _thr_cancel() are setting cancel_pending, and sending SIGCANCEL to the target using thr_kill(2). Since the victim is happily sleeping in sigsuspend(), either SIGCANCEL was not delivered at all, or delivered but ignored due to convoluted threaded handler. I tried to find any point where SIGCANCEL could be lost, but so far I do not see it. Can you please apply the debugging patch below and repeat the same data gathering? I want to see if the victim thread' userspace got SIGCANCEL at all. -- You are receiving this mail because: You are the assignee for the bug.help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-283101-13406-SVIhauGLzR>
