From a78e42a7c8b63ef099ef5a3c1c019c4aa227b5ca Mon Sep 17 00:00:00 2001 From: Grissiom Date: Wed, 16 Apr 2014 10:47:30 +0800 Subject: [PATCH] [mempool] reset the thread->error before suspending thread Time out result and other errors is recorded in thread->error. Dirty error will screw up the error handling code after the thread has been wake up. --- src/mempool.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mempool.c b/src/mempool.c index c9bcd7a45c..05904bfbc7 100644 --- a/src/mempool.c +++ b/src/mempool.c @@ -356,6 +356,8 @@ void *rt_mp_alloc(rt_mp_t mp, rt_int32_t time) /* get current thread */ thread = rt_thread_self(); + thread->error = RT_EOK; + /* need suspend thread */ rt_thread_suspend(thread); rt_list_insert_after(&(mp->suspend_thread), &(thread->tlist));