|
@@ -408,8 +408,9 @@ u32_t sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout)
|
|
|
else
|
|
|
t = timeout / (1000 / RT_TICK_PER_SECOND);
|
|
|
}
|
|
|
-
|
|
|
- ret = rt_mb_recv(*mbox, (rt_ubase_t *)msg, t);
|
|
|
+ /*When the waiting msg is generated by the application through signaling mechanisms,
|
|
|
+ only by using interruptible mode can the program be made runnable again*/
|
|
|
+ ret = rt_mb_recv_interruptibale(*mbox, (rt_ubase_t *)msg, t);
|
|
|
if(ret != RT_EOK)
|
|
|
{
|
|
|
return SYS_ARCH_TIMEOUT;
|