diff options
| author | Meco Man <[email protected]> | 2021-01-04 22:34:50 +0800 |
|---|---|---|
| committer | Meco Man <[email protected]> | 2021-01-04 22:34:50 +0800 |
| commit | cd6ca24f88eb167486189eae7d742293203d60e5 (patch) | |
| tree | e7d95ac3ef47bf247fbe8057ab17fc3122ffc999 /src/ipc.c | |
| parent | 234f1aec99a4283e29aff1b2212d23d47aec54a7 (diff) | |
update
Diffstat (limited to 'src/ipc.c')
| -rw-r--r-- | src/ipc.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -1534,7 +1534,6 @@ rt_err_t rt_mb_send_wait(rt_mailbox_t mb, if (mb->entry == mb->size && timeout == 0) { rt_hw_interrupt_enable(temp); - return -RT_EFULL; } @@ -1678,8 +1677,14 @@ rt_err_t rt_mb_urgent(rt_mailbox_t mb, rt_ubase_t value) /* disable interrupt */ temp = rt_hw_interrupt_disable(); + if (mb->entry == mb->size) + { + rt_hw_interrupt_enable(temp); + return -RT_EFULL; + } + /* rewind to the previous position */ - if(mb->out_offset > 0) + if (mb->out_offset > 0) { mb->out_offset --; } @@ -1691,7 +1696,7 @@ rt_err_t rt_mb_urgent(rt_mailbox_t mb, rt_ubase_t value) /* set ptr */ mb->msg_pool[mb->out_offset] = value; - if(mb->entry < RT_MB_ENTRY_MAX) + if (mb->entry < RT_MB_ENTRY_MAX) { /* increase message entry */ mb->entry ++; |
