summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/scheduler.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-02-02 16:24:05 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-02-03 10:17:38 +0100
commitca1e546e7772838b20d0792155e2c71514d6b5d3 (patch)
treea5af2d74d6fcefa8d36f0fa32debd886e63cca4b /cpukit/score/include/rtems/score/scheduler.h
parentsparc: Fix volatile clobber (diff)
downloadrtems-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.h14
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 *