summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMeco Man <[email protected]>2021-06-02 15:30:32 +0800
committerMeco Man <[email protected]>2021-06-03 19:05:36 +0800
commit5a6bc9900689ba2d21850cc520c3621c57037025 (patch)
tree0cf2c4f67323c33626e7dcccc17a00c04b3720cf /src
parentf34e9323b430813a6dbb62a609cfb3980aa645b0 (diff)
[bug][kernel] 保持空闲任务钩子函数调用的原子性
Diffstat (limited to 'src')
-rw-r--r--src/clock.c3
-rw-r--r--src/idle.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/src/clock.c b/src/clock.c
index 045555933d..191525411a 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -13,7 +13,8 @@
* 2010-07-13 Bernard fix rt_tick_from_millisecond issue found by kuronca
* 2011-06-26 Bernard add rt_tick_set function.
* 2018-11-22 Jesven add per cpu tick
- * 2020-12-29 Meco Man add function rt_tick_get_millisecond()
+ * 2020-12-29 Meco Man implement rt_tick_get_millisecond()
+ * 2021-06-01 Meco Man add critical section projection for rt_tick_increase()
*/
#include <rthw.h>
diff --git a/src/idle.c b/src/idle.c
index 59868352d8..e73a78be9c 100644
--- a/src/idle.c
+++ b/src/idle.c
@@ -202,12 +202,14 @@ static void rt_thread_idle_entry(void *parameter)
{
#ifdef RT_USING_IDLE_HOOK
rt_size_t i;
+ void (*idle_hook)(void);
for (i = 0; i < RT_IDLE_HOOK_LIST_SIZE; i++)
{
- if (idle_hook_list[i] != RT_NULL)
+ idle_hook = idle_hook_list[i];
+ if (idle_hook != RT_NULL)
{
- idle_hook_list[i]();
+ idle_hook();
}
}
#endif