diff options
Diffstat (limited to 'sys/kern/kern_clock.c')
-rw-r--r-- | sys/kern/kern_clock.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/kern/kern_clock.c b/sys/kern/kern_clock.c index fdc5905..5097862 100644 --- a/sys/kern/kern_clock.c +++ b/sys/kern/kern_clock.c @@ -213,8 +213,10 @@ deadlkres(void) MPASS(td->td_blocked != NULL); /* Handle ticks wrap-up. */ - if (ticks < td->td_blktick) + if (ticks < td->td_blktick) { + thread_unlock(td); continue; + } tticks = ticks - td->td_blktick; thread_unlock(td); if (tticks > blkticks) { @@ -233,8 +235,10 @@ deadlkres(void) } else if (TD_IS_SLEEPING(td)) { /* Handle ticks wrap-up. */ - if (ticks < td->td_blktick) + if (ticks < td->td_blktick) { + thread_unlock(td); continue; + } /* * Check if the thread is sleeping on a |