summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2017-05-23 11:08:26 +0800
committerGitHub <[email protected]>2017-05-23 11:08:26 +0800
commit1730dcb83f6079c4e382ef8a35e51e391507754c (patch)
tree995dacfc0d286f98310dbdf48d95638c76273703 /src
parentceacca1202fbbe10f177cfea0be497cfb3cf4c82 (diff)
parent05052127c3fe2fcc8989e5cafa8099e7091a9a0c (diff)
Merge pull request #736 from geniusgogo/IDLE_hook
[kernel] Idle hook
Diffstat (limited to 'src')
-rw-r--r--src/idle.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/idle.c b/src/idle.c
index aab09cb913..b821c66fd9 100644
--- a/src/idle.c
+++ b/src/idle.c
@@ -30,8 +30,14 @@
#include <rthw.h>
#include <rtthread.h>
+#if defined (RT_USING_HOOK)
+#ifndef RT_USING_IDLE_HOOK
+#define RT_USING_IDLE_HOOK 1
+#endif
+#endif
+
#ifndef IDLE_THREAD_STACK_SIZE
-#if defined (RT_USING_HOOK) || defined(RT_USING_HEAP)
+#if defined (RT_USING_IDLE_HOOK) || defined(RT_USING_HEAP)
#define IDLE_THREAD_STACK_SIZE 256
#else
#define IDLE_THREAD_STACK_SIZE 128
@@ -44,7 +50,7 @@ static rt_uint8_t rt_thread_stack[IDLE_THREAD_STACK_SIZE];
extern rt_list_t rt_thread_defunct;
-#ifdef RT_USING_HOOK
+#ifdef RT_USING_IDLE_HOOK
static void (*rt_thread_idle_hook)();
/**
@@ -179,7 +185,13 @@ static void rt_thread_idle_entry(void *parameter)
{
while (1)
{
- RT_OBJECT_HOOK_CALL(rt_thread_idle_hook,());
+ #ifdef RT_USING_IDLE_HOOK
+ if (rt_thread_idle_hook != RT_NULL)
+ {
+ rt_thread_idle_hook();
+ }
+ #endif
+
rt_thread_idle_excute();
}
}