RTEMS
5.1
|
Scheduler node for per-thread data. More...
#include <schedulernode.h>
Data Fields | |
struct _Thread_Control * | owner |
The thread owning this node. | |
struct { | |
Priority_Aggregation Priority | |
} | Wait |
Thread wait support block. | |
struct { | |
Priority_Control value | |
The thread priority value of this scheduler node. More... | |
} | Priority |
The thread priority information used by the scheduler. More... | |
Scheduler node for per-thread data.
struct { ... } Scheduler_Node::Priority |
The thread priority information used by the scheduler.
The thread priority is manifest in two independent areas. One area is the user visible thread priority along with a potential thread queue. The other is the scheduler. During a thread priority change, the user visible thread priority and the thread queue are first updated and the thread priority value here is changed. Once this is done the scheduler is notified via the update priority operation, so that it can update its internal state and honour a new thread priority value.
Priority_Control Scheduler_Node::value |
The thread priority value of this scheduler node.
The producer of this value is _Thread_Change_priority(). The consumer is the scheduler via the unblock and update priority operations.
This priority control consists of two parts. One part is the plain priority value (most-significant 63 bits). The other part is the least-significant bit which indicates if the thread should be appended (bit set) or prepended (bit cleared) to its priority group, see SCHEDULER_PRIORITY_APPEND().