The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=299912abf26990afdc406ecd3a12f256a8080afe
commit 299912abf26990afdc406ecd3a12f256a8080afe Author: Konstantin Belousov <[email protected]> AuthorDate: 2021-06-06 23:00:10 +0000 Commit: Konstantin Belousov <[email protected]> CommitDate: 2021-06-22 01:45:31 +0000 sigwait(2) and sigtimedwait(2) must not be restarted. (cherry picked from commit afb36e289c1d96053b6063b0e548fc7d31dbd239) --- sys/kern/kern_sig.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 0453d3b2702c..a2709f38c5cb 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -1168,9 +1168,7 @@ sys_sigwait(struct thread *td, struct sigwait_args *uap) error = kern_sigtimedwait(td, set, &ksi, NULL); if (error) { if (error == EINTR && td->td_proc->p_osrel < P_OSREL_SIGWAIT) - error = ERESTART; - if (error == ERESTART) - return (error); + return (ERESTART); td->td_retval[0] = error; return (0); } @@ -1329,15 +1327,13 @@ kern_sigtimedwait(struct thread *td, sigset_t waitset, ksiginfo_t *ksi, error = msleep(ps, &p->p_mtx, PPAUSE|PCATCH, "sigwait", timo); - if (timeout != NULL) { - if (error == ERESTART) { - /* Timeout can not be restarted. */ - error = EINTR; - } else if (error == EAGAIN) { - /* We will calculate timeout by ourself. */ - error = 0; - } - } + /* The syscalls can not be restarted. */ + if (error == ERESTART) + error = EINTR; + + /* We will calculate timeout by ourself. */ + if (timeout != NULL && error == EAGAIN) + error = 0; /* * If PTRACE_SCE or PTRACE_SCX were set after _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all To unsubscribe, send any mail to "[email protected]"
