The order in which step checks for 1 and 2 are not rigidly defined and
may actually occur in either order depending on how the threads execute.
This waits for the job to complete to enforce the existing ordering.
---
 testsuites/smptests/smpmulticast01/init.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/testsuites/smptests/smpmulticast01/init.c 
b/testsuites/smptests/smpmulticast01/init.c
index 4163dd8370..ec4bab922d 100644
--- a/testsuites/smptests/smpmulticast01/init.c
+++ b/testsuites/smptests/smpmulticast01/init.c
@@ -506,6 +506,7 @@ T_TEST_CASE(AddJobInJob)
   _Per_CPU_Add_job(cpu_self, &add_job_in_job_jobs[0]);
   T_step(0);
   _SMP_Send_message(cpu_self, SMP_MESSAGE_PERFORM_JOBS);
+  _Per_CPU_Wait_for_job(cpu_self, &add_job_in_job_jobs[0]);
   T_step(2);
   _SMP_Send_message(cpu_self, SMP_MESSAGE_PERFORM_JOBS);
   _Thread_Dispatch_enable(cpu_self);
-- 
2.30.2

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to