From 75aef54d16baab507134a5011e955151b990dcf6 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 17 Mar 2016 06:16:23 +0100 Subject: posix: Avoid Giant lock in sched_yield() Update #2555. --- cpukit/posix/src/sched_yield.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'cpukit/posix') 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; } -- cgit v1.2.3