Stop fiddling thread priority with msleep, eliminating unnecessary
context switching. This improves performance about 30% on UP machine.
This commit is contained in:
parent
4b99735d08
commit
dd1a6f53ac
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=153332
@ -1643,7 +1643,7 @@ _mqueue_send(struct mqueue *mq, struct mqueue_msg *msg, int timo)
|
|||||||
}
|
}
|
||||||
mq->mq_senders++;
|
mq->mq_senders++;
|
||||||
error = msleep(&mq->mq_senders, &mq->mq_mutex,
|
error = msleep(&mq->mq_senders, &mq->mq_mutex,
|
||||||
PSOCK | PCATCH, "mqsend", timo);
|
curthread->td_priority | PCATCH, "mqsend", timo);
|
||||||
mq->mq_senders--;
|
mq->mq_senders--;
|
||||||
if (error == EAGAIN)
|
if (error == EAGAIN)
|
||||||
error = ETIMEDOUT;
|
error = ETIMEDOUT;
|
||||||
@ -1795,7 +1795,7 @@ _mqueue_recv(struct mqueue *mq, struct mqueue_msg **msg, int timo)
|
|||||||
}
|
}
|
||||||
mq->mq_receivers++;
|
mq->mq_receivers++;
|
||||||
error = msleep(&mq->mq_receivers, &mq->mq_mutex,
|
error = msleep(&mq->mq_receivers, &mq->mq_mutex,
|
||||||
PSOCK | PCATCH, "mqrecv", timo);
|
curthread->td_priority | PCATCH, "mqrecv", timo);
|
||||||
mq->mq_receivers--;
|
mq->mq_receivers--;
|
||||||
if (error == EAGAIN)
|
if (error == EAGAIN)
|
||||||
error = ETIMEDOUT;
|
error = ETIMEDOUT;
|
||||||
|
Loading…
Reference in New Issue
Block a user