diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-06-10 16:15:46 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-06-14 16:26:08 +0200 |
commit | 6eba7c857b9e72bc4ed8e55f0c9538c45631484f (patch) | |
tree | 09847feda8d2183412ab57d59602b3f08481d2ae /cpukit/score/src/schedulersimpleyield.c | |
parent | scheduler: Add start idle thread operation (diff) | |
download | rtems-6eba7c857b9e72bc4ed8e55f0c9538c45631484f.tar.bz2 |
scheduler: Specify thread of yield operation
The yielding thread of the yield operation is now specified by a
parameter. The tick operation may be performed for each executing
thread in a SMP configuration.
Diffstat (limited to 'cpukit/score/src/schedulersimpleyield.c')
-rw-r--r-- | cpukit/score/src/schedulersimpleyield.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/cpukit/score/src/schedulersimpleyield.c b/cpukit/score/src/schedulersimpleyield.c index 1d5d48c7e5..cfbe7a4cba 100644 --- a/cpukit/score/src/schedulersimpleyield.c +++ b/cpukit/score/src/schedulersimpleyield.c @@ -24,21 +24,19 @@ #include <rtems/score/thread.h> #include <rtems/score/schedulersimple.h> -void _Scheduler_simple_Yield( void ) +void _Scheduler_simple_Yield( Thread_Control *thread ) { ISR_Level level; - Thread_Control *executing; - executing = _Thread_Executing; _ISR_Disable( level ); - _Scheduler_simple_Ready_queue_requeue(&_Scheduler, executing); + _Scheduler_simple_Ready_queue_requeue( &_Scheduler, thread ); _ISR_Flash( level ); _Scheduler_simple_Schedule(); - if ( !_Thread_Is_heir( executing ) ) + if ( !_Thread_Is_heir( thread ) ) _Thread_Dispatch_necessary = true; _ISR_Enable( level ); |