rtems: Fix _Rate_monotonic_Release_postponed_job()

Use proper locking in SMP configurations.

Update #2795.
This commit is contained in:
Sebastian Huber
2017-01-24 15:04:11 +01:00
parent 1240aade5a
commit 625bd6aca4
+3 -5
View File
@@ -71,13 +71,10 @@ static void _Rate_monotonic_Release_postponed_job(
ISR_lock_Context *lock_context
)
{
/* This function only releases the postponed jobs. */
Per_CPU_Control *cpu_self;
Per_CPU_Control *cpu_self;
Thread_queue_Context queue_context;
cpu_self = _Thread_Dispatch_disable_critical( lock_context );
_Rate_monotonic_Release( owner, lock_context );
the_period->postponed_jobs -=1;
--the_period->postponed_jobs;
_Scheduler_Release_job(
owner,
&the_period->Priority,
@@ -85,6 +82,7 @@ static void _Rate_monotonic_Release_postponed_job(
&queue_context
);
cpu_self = _Thread_Dispatch_disable_critical( lock_context );
_Rate_monotonic_Release( the_period, lock_context );
_Thread_Priority_update( &queue_context );
_Thread_Dispatch_enable( cpu_self );