mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-21 18:57:16 +08:00
return thread error when resumed by signal
This commit is contained in:
+9
-2
@@ -30,6 +30,7 @@
|
||||
* 2021-11-15 THEWON Remove duplicate work between idle and _thread_exit
|
||||
* 2021-12-27 Meco Man remove .init_priority
|
||||
* 2022-01-07 Gabriel Moving __on_rt_xxxxx_hook to thread.c
|
||||
* 2022-01-24 THEWON let rt_thread_sleep return thread->error when using signal
|
||||
*/
|
||||
|
||||
#include <rthw.h>
|
||||
@@ -566,6 +567,9 @@ rt_err_t rt_thread_sleep(rt_tick_t tick)
|
||||
/* disable interrupt */
|
||||
temp = rt_hw_interrupt_disable();
|
||||
|
||||
/* reset thread error */
|
||||
thread->error = RT_EOK;
|
||||
|
||||
/* suspend thread */
|
||||
rt_thread_suspend(thread);
|
||||
|
||||
@@ -582,7 +586,7 @@ rt_err_t rt_thread_sleep(rt_tick_t tick)
|
||||
if (thread->error == -RT_ETIMEOUT)
|
||||
thread->error = RT_EOK;
|
||||
|
||||
return RT_EOK;
|
||||
return thread->error;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -625,6 +629,9 @@ rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick)
|
||||
/* disable interrupt */
|
||||
level = rt_hw_interrupt_disable();
|
||||
|
||||
/* reset thread error */
|
||||
thread->error = RT_EOK;
|
||||
|
||||
cur_tick = rt_tick_get();
|
||||
if (cur_tick - *tick < inc_tick)
|
||||
{
|
||||
@@ -657,7 +664,7 @@ rt_err_t rt_thread_delay_until(rt_tick_t *tick, rt_tick_t inc_tick)
|
||||
rt_hw_interrupt_enable(level);
|
||||
}
|
||||
|
||||
return RT_EOK;
|
||||
return thread->error;
|
||||
}
|
||||
RTM_EXPORT(rt_thread_delay_until);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user