diff options
author | Zbigniew Bodek <zbb@FreeBSD.org> | 2015-11-27 18:19:11 +0000 |
---|---|---|
committer | Zbigniew Bodek <zbb@FreeBSD.org> | 2015-11-27 18:19:11 +0000 |
commit | 5bb01ba335a75ac10d4a8723101b1fc88ffa2397 (patch) | |
tree | 645b775f513f6c80dfbe0dd1ce3d6fd2e32caa2f | |
parent | bbcfaa4eb8d2dd993c46f4432caa148b8f48e9ff (diff) |
Notes
-rw-r--r-- | sys/boot/kshim/bsd_kernel.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/boot/kshim/bsd_kernel.c b/sys/boot/kshim/bsd_kernel.c index d41b9f4dc0de6..eaa437cb23a2e 100644 --- a/sys/boot/kshim/bsd_kernel.c +++ b/sys/boot/kshim/bsd_kernel.c @@ -138,6 +138,7 @@ cv_timedwait(struct cv *cv, struct mtx *mtx, int timo) { int start = ticks; int delta; + int time = 0; if (cv->sleeping) return (EWOULDBLOCK); /* not allowed */ @@ -154,6 +155,14 @@ cv_timedwait(struct cv *cv, struct mtx *mtx, int timo) usb_idle(); + if (++time >= (1000000 / hz)) { + time = 0; + callout_process(1); + } + + /* Sleep for 1 us */ + delay(1); + mtx_lock(mtx); } |