diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-10-13 08:57:29 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-11-02 10:05:43 +0100 |
commit | 913864c0b85c9e94140515a44e79d13e999ff9a2 (patch) | |
tree | 2bca1b18a07972948290afee551bda967c452185 /cpukit/score/src/scheduler.c | |
parent | score: Yield support for new SMP helping protocol (diff) | |
download | rtems-913864c0b85c9e94140515a44e79d13e999ff9a2.tar.bz2 |
score: Use scheduler instance specific locks
Update #2556.
Diffstat (limited to 'cpukit/score/src/scheduler.c')
-rw-r--r-- | cpukit/score/src/scheduler.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/cpukit/score/src/scheduler.c b/cpukit/score/src/scheduler.c index e7854e1361..e5b9688faf 100644 --- a/cpukit/score/src/scheduler.c +++ b/cpukit/score/src/scheduler.c @@ -20,16 +20,24 @@ #include <rtems/score/schedulerimpl.h> -ISR_LOCK_DEFINE( , _Scheduler_Lock, "Scheduler" ) - void _Scheduler_Handler_initialization(void) { - size_t n = _Scheduler_Count; + size_t n; size_t i; + n = _Scheduler_Count; + for ( i = 0 ; i < n ; ++i ) { - const Scheduler_Control *scheduler = &_Scheduler_Table[ i ]; + const Scheduler_Control *scheduler; +#if defined(RTEMS_SMP) + Scheduler_Context *context; +#endif + scheduler = &_Scheduler_Table[ i ]; +#if defined(RTEMS_SMP) + context = _Scheduler_Get_context( scheduler ); +#endif + _ISR_lock_Initialize( &context->Lock, "Scheduler" ); ( *scheduler->Operations.initialize )( scheduler ); } } |