sched_idletask: remove the check for whether tcb is NULL

We should not call these functions before nx_start;
therefore, this_task will not be empty.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
This commit is contained in:
hujun5
2025-02-06 15:47:45 +08:00
committed by Alan C. Assis
parent 3edf6de552
commit 8f91054b1d
+12 -22
View File
@@ -60,28 +60,18 @@ bool sched_idletask(void)
{
FAR struct tcb_s *rtcb = this_task();
/* If called early in the initialization sequence, the tasks lists may not
* have been initialized and, in that case, rtcb may be NULL.
DEBUGASSERT(rtcb);
/* The IDLE task TCB is distinguishable by a few things:
*
* (1) It always lies at the end of the task list,
* (2) It always has priority zero, and
* (3) It should have the TCB_FLAG_CPU_LOCKED flag set.
*
* In the non-SMP case, the IDLE task will also have PID=0, but that
* is not a portable test because there are multiple IDLE tasks with
* different PIDs in the SMP configuration.
*/
DEBUGASSERT(rtcb != NULL || !OSINIT_TASK_READY());
if (rtcb != NULL)
{
/* The IDLE task TCB is distinguishable by a few things:
*
* (1) It always lies at the end of the task list,
* (2) It always has priority zero, and
* (3) It should have the TCB_FLAG_CPU_LOCKED flag set.
*
* In the non-SMP case, the IDLE task will also have PID=0, but that
* is not a portable test because there are multiple IDLE tasks with
* different PIDs in the SMP configuration.
*/
return is_idle_task(rtcb);
}
/* We must be on the IDLE thread if we are early in initialization */
return true;
return is_idle_task(rtcb);
}