diff --git a/components/lwp/lwp.c b/components/lwp/lwp.c index 7157f2725022626570ec717384fc7d274d0ecb67..acd290bc0fcda3b1673dd520629568387b9b0828 100644 --- a/components/lwp/lwp.c +++ b/components/lwp/lwp.c @@ -34,7 +34,7 @@ #define DBG_ENABLE #define DBG_SECTION_NAME "[LWP]" #define DBG_COLOR -#define DBG_LEVEL DBG_LOG +#define DBG_LEVEL DBG_WARNING #include extern rt_thread_t rt_current_thread; diff --git a/components/lwp/lwp_mem.c b/components/lwp/lwp_mem.c index ca390e4f962a1c387415c715e99f6f9818dacbfa..6092dc6ee551df63ee94493165f959a6d0a0dd08 100644 --- a/components/lwp/lwp_mem.c +++ b/components/lwp/lwp_mem.c @@ -28,7 +28,7 @@ #define DBG_ENABLE #define DBG_SECTION_NAME "[LWPMEM]" #define DBG_COLOR -#define DBG_LEVEL DBG_LOG +#define DBG_LEVEL DBG_WARNING #include // todo: remove repleat code @@ -117,13 +117,18 @@ void rt_lwp_mem_deinit(struct rt_lwp *lwp) RT_ASSERT(lwp != RT_NULL); - for (node = lwp->hlist.next; node != &(lwp->hlist); node = node->next) + node = lwp->hlist.next; + + while (node != &(lwp->hlist)) { struct rt_lwp_memheap *lwp_heap; + lwp_heap = rt_list_entry(node, struct rt_lwp_memheap, mlist); - RT_ASSERT(lwp_heap != RT_NULL); + /* update note before free page*/ + node = node->next; + rt_lwp_free_page(lwp, lwp_heap); } }