From 9bbeed5df6bd65e9c1dfc6824cfe248e424dabc4 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Sun, 25 Jul 2004 14:59:40 +0000 Subject: [PATCH] 2004-07-25 Thomas Rauscher PR 609/rtems * src/threaddispatch.c: Close race condition between _Thread_Dispatch and _Thread_Tickle_timeslice. --- cpukit/score/ChangeLog | 6 ++++++ cpukit/score/src/threaddispatch.c | 5 ++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cpukit/score/ChangeLog b/cpukit/score/ChangeLog index 9d3c26b838..2aca4ed4cb 100644 --- a/cpukit/score/ChangeLog +++ b/cpukit/score/ChangeLog @@ -1,3 +1,9 @@ +2004-07-25 Thomas Rauscher + + PR 609/rtems + * src/threaddispatch.c: Close race condition between _Thread_Dispatch + and _Thread_Tickle_timeslice. + 2004-07-25 Victor Vengerov PR 654/rtems diff --git a/cpukit/score/src/threaddispatch.c b/cpukit/score/src/threaddispatch.c index 9ba69a96ac..d4f73b49a7 100644 --- a/cpukit/score/src/threaddispatch.c +++ b/cpukit/score/src/threaddispatch.c @@ -70,6 +70,8 @@ void _Thread_Dispatch( void ) _Thread_Executing = heir; executing->rtems_ada_self = rtems_ada_self; rtems_ada_self = heir->rtems_ada_self; + if ( heir->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE ) + heir->cpu_time_budget = _Thread_Ticks_per_timeslice; _ISR_Enable( level ); heir->ticks_executed++; @@ -84,9 +86,6 @@ void _Thread_Dispatch( void ) _User_extensions_Thread_switch( executing, heir ); - if ( heir->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE ) - heir->cpu_time_budget = _Thread_Ticks_per_timeslice; - /* * If the CPU has hardware floating point, then we must address saving * and restoring it as part of the context switch.