Skip to content

Commit 7d11aa2

Browse files
authored
Merge pull request #4199 from mysterywolf/m--
[kernel] 对IPC中减减进行摸排,防止出现减出一个很大的数
2 parents 936db0e + 3d5e792 commit 7d11aa2

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/ipc.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1764,8 +1764,12 @@ rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_ubase_t *value, rt_int32_t timeout)
17641764
++ mb->out_offset;
17651765
if (mb->out_offset >= mb->size)
17661766
mb->out_offset = 0;
1767+
17671768
/* decrease message entry */
1768-
mb->entry --;
1769+
if(mb->entry > 0)
1770+
{
1771+
mb->entry --;
1772+
}
17691773

17701774
/* resume suspended thread */
17711775
if (!rt_list_isempty(&(mb->suspend_sender_thread)))
@@ -2439,7 +2443,10 @@ rt_err_t rt_mq_recv(rt_mq_t mq,
24392443
mq->msg_queue_tail = RT_NULL;
24402444

24412445
/* decrease message entry */
2442-
mq->entry --;
2446+
if(mq->entry > 0)
2447+
{
2448+
mq->entry --;
2449+
}
24432450

24442451
/* enable interrupt */
24452452
rt_hw_interrupt_enable(temp);

0 commit comments

Comments
 (0)