jlaitine commented on code in PR #16673:
URL: https://github.com/apache/nuttx/pull/16673#discussion_r2198061788


##########
sched/sched/sched_setpriority.c:
##########
@@ -223,29 +230,30 @@ static inline void nxsched_running_setpriority(FAR struct 
tcb_s *tcb,
           /* A context switch will occur. */
 
 #ifdef CONFIG_SMP
-          if (tcb->cpu != this_cpu() &&
+          int cpu = this_cpu();
+          if (tcb->cpu != cpu &&
               tcb->task_state == TSTATE_TASK_RUNNING)
             {
-              struct reprioritize_arg_s arg;
+              struct reprioritize_arg_s *arg = &g_reprioritize_arg[cpu];

Review Comment:
   @xiaoxiang781216 But I now realized that the original code was correct. I 
just forgot how I thought it over.
   
   The smp call is only sent to the one and only running task on the CPU, and 
the task is locked to that CPU before sending the message. The subsequent calls 
just replace the message, but they are all for the same tcb.
   
   So it is not possible that the priority change messages are sent to other 
TCBs before the one is handled.
   
   Maybe I should change this back, and not start adding stuff to the TCB...
   
   



-- 
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: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to