diff options
-rw-r--r-- | cpukit/posix/src/sched_yield.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/cpukit/posix/src/sched_yield.c b/cpukit/posix/src/sched_yield.c index e398fbf06e..7e056cef27 100644 --- a/cpukit/posix/src/sched_yield.c +++ b/cpukit/posix/src/sched_yield.c @@ -26,8 +26,10 @@ int sched_yield( void ) { - _Thread_Disable_dispatch(); - _Thread_Yield( _Thread_Executing ); - _Thread_Enable_dispatch(); + Per_CPU_Control *cpu_self; + + cpu_self = _Thread_Dispatch_disable(); + _Thread_Yield( _Per_CPU_Get_executing( cpu_self ) ); + _Thread_Dispatch_enable( cpu_self ); return 0; } |