2004-07-25 Thomas Rauscher <trauscher@loytec.com>

PR 609/rtems
	* score/src/threaddispatch.c: Close race condition between
	_Thread_Dispatch and _Thread_Tickle_timeslice.
This commit is contained in:
Joel Sherrill
2004-07-25 15:00:04 +00:00
parent bdffb59ff7
commit e9f6d10f4d
2 changed files with 8 additions and 3 deletions

View File

@@ -1,3 +1,9 @@
2004-07-25 Thomas Rauscher <trauscher@loytec.com>
PR 609/rtems
* score/src/threaddispatch.c: Close race condition between
_Thread_Dispatch and _Thread_Tickle_timeslice.
2004-07-25 Victor Vengerov <Victor.Vengerov@oktetlabs.ru>
PR 654/rtems

View File

@@ -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.