diff options
author | davidxu <davidxu@FreeBSD.org> | 2005-12-12 05:04:56 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2005-12-12 05:04:56 +0000 |
commit | a7ea81a09f8ecb977a7c1b7b1d87b359e843c5dd (patch) | |
tree | ef76eff58e57ede61ddefdfa29658c0151bd742d /sys/kern/uipc_mqueue.c | |
parent | 820329430ae37e4b738136ec5c9afbce9d1dd103 (diff) | |
download | FreeBSD-src-a7ea81a09f8ecb977a7c1b7b1d87b359e843c5dd.zip FreeBSD-src-a7ea81a09f8ecb977a7c1b7b1d87b359e843c5dd.tar.gz |
Stop fiddling thread priority with msleep, eliminating unnecessary
context switching. This improves performance about 30% on UP machine.
Diffstat (limited to 'sys/kern/uipc_mqueue.c')
-rw-r--r-- | sys/kern/uipc_mqueue.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c index 0e38e31..bb3812c 100644 --- a/sys/kern/uipc_mqueue.c +++ b/sys/kern/uipc_mqueue.c @@ -1643,7 +1643,7 @@ _mqueue_send(struct mqueue *mq, struct mqueue_msg *msg, int timo) } mq->mq_senders++; error = msleep(&mq->mq_senders, &mq->mq_mutex, - PSOCK | PCATCH, "mqsend", timo); + curthread->td_priority | PCATCH, "mqsend", timo); mq->mq_senders--; if (error == EAGAIN) error = ETIMEDOUT; @@ -1795,7 +1795,7 @@ _mqueue_recv(struct mqueue *mq, struct mqueue_msg **msg, int timo) } mq->mq_receivers++; error = msleep(&mq->mq_receivers, &mq->mq_mutex, - PSOCK | PCATCH, "mqrecv", timo); + curthread->td_priority | PCATCH, "mqrecv", timo); mq->mq_receivers--; if (error == EAGAIN) error = ETIMEDOUT; |