summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorheyuanjie87 <[email protected]>2024-08-29 18:24:51 +0800
committerRbb666 <[email protected]>2024-10-21 13:05:08 +0800
commite2b311c3b5f247300e96af76223808bbf1992720 (patch)
tree47358c53437fe19f283c002863b58c5cf2f65fe4 /src
parentfc6f3c0403e04979d80a07b5267f8663ac4792ab (diff)
[kernel]在smart模式也启用"回收线程"
lwp的某些资源回收放到了后台,其中会引起线程挂起,而idle不应该被挂起
Diffstat (limited to 'src')
-rw-r--r--src/idle.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/idle.c b/src/idle.c
index 0447de79b3..092b273783 100644
--- a/src/idle.c
+++ b/src/idle.c
@@ -50,7 +50,7 @@ static struct rt_thread idle_thread[_CPUS_NR];
rt_align(RT_ALIGN_SIZE)
static rt_uint8_t idle_thread_stack[_CPUS_NR][IDLE_THREAD_STACK_SIZE];
-#ifdef RT_USING_SMP
+#if defined(RT_USING_SMP) || defined(RT_USING_SMART)
#ifndef SYSTEM_THREAD_STACK_SIZE
#define SYSTEM_THREAD_STACK_SIZE IDLE_THREAD_STACK_SIZE
#endif
@@ -148,7 +148,7 @@ void rt_thread_defunct_enqueue(rt_thread_t thread)
level = rt_spin_lock_irqsave(&_defunct_spinlock);
rt_list_insert_after(&_rt_thread_defunct, &RT_THREAD_LIST_NODE(thread));
rt_spin_unlock_irqrestore(&_defunct_spinlock, level);
-#ifdef RT_USING_SMP
+#if defined(RT_USING_SMP) || defined(RT_USING_SMART)
rt_sem_release(&system_sem);
#endif
}
@@ -286,7 +286,7 @@ static void idle_thread_entry(void *parameter)
}
#endif /* RT_USING_IDLE_HOOK */
-#ifndef RT_USING_SMP
+#if !defined(RT_USING_SMP) && !defined(RT_USING_SMART)
rt_defunct_execute();
#endif /* RT_USING_SMP */
@@ -297,7 +297,7 @@ static void idle_thread_entry(void *parameter)
}
}
-#ifdef RT_USING_SMP
+#if defined(RT_USING_SMP) || defined(RT_USING_SMART)
static void rt_thread_system_entry(void *parameter)
{
RT_UNUSED(parameter);
@@ -355,7 +355,7 @@ void rt_thread_idle_init(void)
rt_thread_startup(&idle_thread[i]);
}
-#ifdef RT_USING_SMP
+#if defined(RT_USING_SMP) || defined(RT_USING_SMART)
RT_ASSERT(RT_THREAD_PRIORITY_MAX > 2);
rt_spin_lock_init(&_defunct_spinlock);