summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/net/lwip/port/sys_arch.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/components/net/lwip/port/sys_arch.c b/components/net/lwip/port/sys_arch.c
index 8eb46e7a76..493ba4e893 100644
--- a/components/net/lwip/port/sys_arch.c
+++ b/components/net/lwip/port/sys_arch.c
@@ -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;