RTEMS
Public Attributes | List of all members
_Thread_queue_Heads Struct Reference

Thread queue heads. More...

#include <threadq.h>

Public Attributes

union {
   Chain_Control   Fifo
 This is the FIFO discipline list. More...
 
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_Priority_queue Priority [RTEMS_ZERO_LENGTH_ARRAY]
 One priority queue per scheduler instance.
 

Detailed Description

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.

Definition at line 360 of file threadq.h.

Member Data Documentation

◆ Fifo

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.

Definition at line 372 of file threadq.h.

◆ Heads

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.


The documentation for this struct was generated from the following file: