wangchdo commented on code in PR #17324:
URL: https://github.com/apache/nuttx/pull/17324#discussion_r2522700193
##########
sched/sched/sched_suspend.c:
##########
@@ -170,13 +170,12 @@ void nxsched_suspend(FAR struct tcb_s *tcb)
{
switch_needed = nxsched_remove_readytorun(tcb);
- if (switch_needed || !nxsched_islocked_tcb(rtcb))
+ if (switch_needed)
{
#ifdef CONFIG_SMP
- switch_needed |= nxsched_deliver_task(cpu, tcb->cpu,
- SWITCH_HIGHER);
+ nxsched_deliver_task(cpu, tcb->cpu, SWITCH_HIGHER);
#else
- switch_needed |= nxsched_merge_pending();
+ nxsched_merge_pending();
#endif
Review Comment:
if switch_needed = nxsched_remove_readytorun(tcb); is false, it means that
no current running task is removed from ready, at this case, no need to do
nxsched_merge_pending() or nxsched_deliver_task()
we just need to do nxsched_merge_pending() or nxsched_deliver_task() when
the current running task is removed from ready. Because if there is task still
running, no need to check other tasks
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]