diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-02 16:24:05 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-03 10:17:38 +0100 |
commit | ca1e546e7772838b20d0792155e2c71514d6b5d3 (patch) | |
tree | a5af2d74d6fcefa8d36f0fa32debd886e63cca4b /cpukit/score/include/rtems/score/scheduler.h | |
parent | sparc: Fix volatile clobber (diff) | |
download | rtems-ca1e546e7772838b20d0792155e2c71514d6b5d3.tar.bz2 |
score: Improve scheduler helping protocol
Only register ask for help requests in the scheduler unblock and yield
operations. The actual ask for help operation is carried out during
_Thread_Do_dispatch() on a processor related to the thread. This yields
a better separation of scheduler instances. A thread of one scheduler
instance should not be forced to carry out too much work for threads on
other scheduler instances.
Update #2556.
Diffstat (limited to 'cpukit/score/include/rtems/score/scheduler.h')
-rw-r--r-- | cpukit/score/include/rtems/score/scheduler.h | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/cpukit/score/include/rtems/score/scheduler.h b/cpukit/score/include/rtems/score/scheduler.h index fd59f16dee..1b9509ae4f 100644 --- a/cpukit/score/include/rtems/score/scheduler.h +++ b/cpukit/score/include/rtems/score/scheduler.h @@ -42,16 +42,6 @@ struct Per_CPU_Control; typedef struct Scheduler_Control Scheduler_Control; -#if defined(RTEMS_SMP) - typedef bool Scheduler_Void_or_bool; - - #define SCHEDULER_RETURN_VOID_OR_BOOL return false -#else - typedef void Scheduler_Void_or_bool; - - #define SCHEDULER_RETURN_VOID_OR_BOOL return -#endif - /** * @brief The scheduler operations. */ @@ -63,7 +53,7 @@ typedef struct { void ( *schedule )( const Scheduler_Control *, Thread_Control *); /** @see _Scheduler_Yield() */ - Scheduler_Void_or_bool ( *yield )( + void ( *yield )( const Scheduler_Control *, Thread_Control *, Scheduler_Node * @@ -77,7 +67,7 @@ typedef struct { ); /** @see _Scheduler_Unblock() */ - Scheduler_Void_or_bool ( *unblock )( + void ( *unblock )( const Scheduler_Control *, Thread_Control *, Scheduler_Node * |