diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c index 4dc77282bfce..d55384256619 100644 --- a/sys/kern/kern_synch.c +++ b/sys/kern/kern_synch.c @@ -536,11 +536,8 @@ msleep(ident, mtx, priority, wmesg, timo) mtx_unlock_spin(&sched_lock); PROC_LOCK(p); sig = cursig(td); - if (sig == 0) { - if (thread_suspend_check(1)) { - sig = SIGSTOP; - } - } + if (sig == 0 && thread_suspend_check(1)) + sig = SIGSTOP; mtx_lock_spin(&sched_lock); PROC_UNLOCK(p); if (sig != 0) { @@ -548,9 +545,8 @@ msleep(ident, mtx, priority, wmesg, timo) unsleep(td); } else if (td->td_wchan == NULL) catch = 0; - } else { + } else sig = 0; - } if (td->td_wchan != NULL) { p->p_stats->p_ru.ru_nvcsw++; td->td_state = TDS_SLP;