aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/uipc_mqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/uipc_mqueue.c')
-rw-r--r--sys/kern/uipc_mqueue.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c
index 26c9dee23796..4751635e2aee 100644
--- a/sys/kern/uipc_mqueue.c
+++ b/sys/kern/uipc_mqueue.c
@@ -1735,9 +1735,8 @@ mqueue_send(struct mqueue *mq, const char *msg_ptr,
goto bad;
}
for (;;) {
- ts2 = *abs_timeout;
getnanotime(&ts);
- timespecsub(&ts2, &ts);
+ timespecsub(abs_timeout, &ts, &ts2);
if (ts2.tv_sec < 0 || (ts2.tv_sec == 0 && ts2.tv_nsec <= 0)) {
error = ETIMEDOUT;
break;
@@ -1887,9 +1886,8 @@ mqueue_receive(struct mqueue *mq, char *msg_ptr,
}
for (;;) {
- ts2 = *abs_timeout;
getnanotime(&ts);
- timespecsub(&ts2, &ts);
+ timespecsub(abs_timeout, &ts, &ts2);
if (ts2.tv_sec < 0 || (ts2.tv_sec == 0 && ts2.tv_nsec <= 0)) {
error = ETIMEDOUT;
return (error);