summaryrefslogtreecommitdiff
path: root/src/ipc.c
diff options
context:
space:
mode:
authorWayne Lin <[email protected]>2020-12-29 19:36:00 +0800
committerWayne Lin <[email protected]>2020-12-29 19:36:00 +0800
commitc9892a82bec1f77146fbf7bed6294384dcad62d5 (patch)
tree4a119920fa6e9040508383486a6cd432e8ae7e9a /src/ipc.c
parent1c4328e5a9f6e1cbb737f975e689fc21ea8f6cca (diff)
parent94ba15a80b4856b9654aefa0510465b084a7e459 (diff)
Merge branch 'master' of https://github.com/RT-Thread/rt-thread into nuvoton
Diffstat (limited to 'src/ipc.c')
-rw-r--r--src/ipc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/ipc.c b/src/ipc.c
index 454fcb5439..4261f617b0 100644
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -1764,8 +1764,12 @@ rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_ubase_t *value, rt_int32_t timeout)
++ mb->out_offset;
if (mb->out_offset >= mb->size)
mb->out_offset = 0;
+
/* decrease message entry */
- mb->entry --;
+ if(mb->entry > 0)
+ {
+ mb->entry --;
+ }
/* resume suspended thread */
if (!rt_list_isempty(&(mb->suspend_sender_thread)))
@@ -2439,7 +2443,10 @@ rt_err_t rt_mq_recv(rt_mq_t mq,
mq->msg_queue_tail = RT_NULL;
/* decrease message entry */
- mq->entry --;
+ if(mq->entry > 0)
+ {
+ mq->entry --;
+ }
/* enable interrupt */
rt_hw_interrupt_enable(temp);