diff options
| author | Bernard Xiong <[email protected]> | 2020-12-29 08:20:34 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-12-29 08:20:34 +0800 |
| commit | 7d11aa24a2fa6927ed0a0cf817ba622807b09c0c (patch) | |
| tree | a0188deaa2c2e6753fd4e7e83d9ca79a5f2a38f2 /src | |
| parent | 936db0e396f286a7f493cdadb698cf9340a82448 (diff) | |
| parent | 3d5e79248d284dd277f4c93126fc0f1a4ca0969e (diff) | |
Merge pull request #4199 from mysterywolf/m--
[kernel] 对IPC中减减进行摸排,防止出现减出一个很大的数
Diffstat (limited to 'src')
| -rw-r--r-- | src/ipc.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -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); |
