HomeFreeBSD

check_cancel: when in_sigsuspend, send SIGCANCEL unconditionally

Description

check_cancel: when in_sigsuspend, send SIGCANCEL unconditionally

not only when check_cancel is called from the signal handler.
_thr_wake() is not enough to get the sigsuspend(2) syscall out of the
loop, since it only terminates sleep when an unblocked signal is
delivered.

PR: 283101
In collaboration with: pho
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D48200

Details

Provenance
kibAuthored on Dec 24 2024, 12:08 AM
Reviewer
markj
Differential Revision
D48200: Several fixes for libthr, related to cancellation
Parents
rG030f48f78f96: pthread_setcancelstate(3): make it async-signal-safe
Branches
Unknown
Tags
Unknown