summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_umtx.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2005-01-08 06:57:46 +0000
committerdavidxu <davidxu@FreeBSD.org>2005-01-08 06:57:46 +0000
commit6f1e481e4d62797bb30f0ce0886b8512437c3df2 (patch)
tree2937fcc6bee9fab0037c48ec7fd5453f95cf921d /sys/kern/kern_umtx.c
parent61aaea5fa050bd9aa261f8e0d5fa45248ff90eb4 (diff)
downloadFreeBSD-src-6f1e481e4d62797bb30f0ce0886b8512437c3df2.zip
FreeBSD-src-6f1e481e4d62797bb30f0ce0886b8512437c3df2.tar.gz
Break out of loop earlier if it is not timeout.
Diffstat (limited to 'sys/kern/kern_umtx.c')
-rw-r--r--sys/kern/kern_umtx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c
index 5f1394f..158210c 100644
--- a/sys/kern/kern_umtx.c
+++ b/sys/kern/kern_umtx.c
@@ -651,7 +651,7 @@ do_wait(struct thread *td, struct umtx *umtx, long id, struct timespec *abstime)
error = umtxq_sleep(td, &uq.uq_key,
td->td_priority | PCATCH,
"ucond", timo);
- if (!(td->td_flags & TDF_UMTXQ))
+ if (error != ETIMEDOUT || !(td->td_flags & TDF_UMTXQ))
break;
umtxq_unlock(&uq.uq_key);
}
OpenPOWER on IntegriCloud