RTEMS
5.0.0
|
Thread queue heads. More...
#include <threadq.h>
Data Fields | |
union { | |
Chain_Control Fifo | |
This is the FIFO discipline list. More... | |
Thread_queue_Priority_queue Priority | |
This is the set of threads for priority discipline waiting. | |
} | Heads |
Chain_Control | Free_chain |
A chain with free thread queue heads providing the spare thread queue heads for a thread once it is dequeued. | |
Chain_Node | Free_node |
A chain node to add these thread queue heads to the free chain of the thread queue heads dedicated to the thread queue of an object. | |
Thread queue heads.
Each thread is equipped with spare thread queue heads in case it is not enqueued on a thread queue. The first thread enqueued on a thread queue will give its spare thread queue heads to that thread queue. The threads arriving at the queue will add their thread queue heads to the free chain of the queue heads provided by the first thread enqueued. Once a thread is dequeued it use the free chain to get new spare thread queue heads.
Uses a leading underscore in the structure name to allow forward declarations in standard header files provided by Newlib and GCC.
Chain_Control _Thread_queue_Heads::Fifo |
This is the FIFO discipline list.
On SMP configurations this FIFO is used to enqueue the per scheduler instance priority queues of this structure. This ensures FIFO fairness among the highest priority thread of each scheduler instance.
union { ... } _Thread_queue_Heads::Heads |
This union contains the data structures used to manage the blocked set of tasks which varies based upon the discipline.