From 7979e35617b49433694cf0a636d6ef2b58811ed4 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Sun, 4 Jun 1995 22:43:19 +0000 Subject: changed release number to 3.2.0 --- cpukit/score/src/thread.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'cpukit/score/src/thread.c') diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c index 2d9fc33e6b..a181780e52 100644 --- a/cpukit/score/src/thread.c +++ b/cpukit/score/src/thread.c @@ -588,19 +588,20 @@ void _Thread_Handler( void ) executing = _Thread_Executing; - _Thread_Dispatch_disable_level = 0; - /* - * Do the 'begin' here instead of after the context switch. - * This ensures 'switch' extensions can not be called before - * 'begin' extensions. + * Take care that 'begin' extensions get to complete before + * 'switch' extensions can run. This means must keep dispatch + * disabled until all 'begin' extensions complete. */ - + _User_extensions_Task_begin( executing ); + + /* + * At this point, the dispatch disable level BETTER be 1. + */ - if ( _Thread_Is_context_switch_necessary() ) - _Thread_Dispatch(); - + _Thread_Enable_dispatch(); + (*executing->Start.entry_point)( executing->Start.initial_argument ); _User_extensions_Task_exitted( executing ); -- cgit v1.2.3