diff options
| author | Julian Elischer <julian@FreeBSD.org> | 2002-07-24 23:59:15 +0000 |
|---|---|---|
| committer | Julian Elischer <julian@FreeBSD.org> | 2002-07-24 23:59:15 +0000 |
| commit | 294e6308bf11c36c3a789e1a3cecbef5195a0cf5 (patch) | |
| tree | c709c61f492f62ba21958bbb4dacab6d40b87338 /sys/kern/kern_synch.c | |
| parent | b6d5995e5ffcf365511a62b24807970e144ae627 (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_synch.c')
| -rw-r--r-- | sys/kern/kern_synch.c | 10 |
1 files changed, 3 insertions, 7 deletions
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; |
