diff --git a/c/src/exec/posix/src/sched.c b/c/src/exec/posix/src/sched.c index f16bb12757..cacb3400c4 100644 --- a/c/src/exec/posix/src/sched.c +++ b/c/src/exec/posix/src/sched.c @@ -142,6 +142,8 @@ int sched_rr_get_interval( int sched_yield( void ) { - _Thread_Yield_processor(); + _Thread_Disable_dispatch(); + _Thread_Yield_processor(); + _Thread_Enable_dispatch(); return 0; } diff --git a/cpukit/posix/src/sched.c b/cpukit/posix/src/sched.c index f16bb12757..cacb3400c4 100644 --- a/cpukit/posix/src/sched.c +++ b/cpukit/posix/src/sched.c @@ -142,6 +142,8 @@ int sched_rr_get_interval( int sched_yield( void ) { - _Thread_Yield_processor(); + _Thread_Disable_dispatch(); + _Thread_Yield_processor(); + _Thread_Enable_dispatch(); return 0; }