RTEMS 6.1-rc6
|
The thread queue operations are used to manage the threads of a thread queue. More...
#include <threadq.h>
Data Fields | |
Thread_queue_Priority_actions_operation | priority_actions |
This operation performs the thread queue priority actions. | |
Thread_queue_Enqueue_operation | enqueue |
This operation is used to enqueue the thread on the thread queue. | |
Thread_queue_Extract_operation | extract |
This operation is used to extract the thread from the thread queue. | |
Thread_queue_Surrender_operation | surrender |
This operation is used to dequeue the thread from the thread queue and optionally surrender the thread queue from a previous owner to the thread. | |
Thread_queue_First_operation | first |
This operation returns the first thread on the thread queue. | |
The thread queue operations are used to manage the threads of a thread queue.
The standard thread queue operation variants are:
Thread_queue_Enqueue_operation Thread_queue_Operations::enqueue |
This operation is used to enqueue the thread on the thread queue.
The enqueue order is defined by the operations variant.
Thread_queue_Extract_operation Thread_queue_Operations::extract |
This operation is used to extract the thread from the thread queue.
The extract operation is intended for timeouts, thread restarts, and thread cancellation. In SMP configurations, the extract operation does not ensure FIFO fairness across schedulers for priority queues. The surrender operation should be used to dequeue a thread from the thread queue under normal conditions (no timeout, no thread restart, and no thread cancellation).
Thread_queue_First_operation Thread_queue_Operations::first |
This operation returns the first thread on the thread queue.
This operation may be called only when the thread queue contains at least one thread. Use Thread_queue_Queue::heads to determine if a thread queue is empty.
Thread_queue_Priority_actions_operation Thread_queue_Operations::priority_actions |
This operation performs the thread queue priority actions.
Priority actions are produced and processed during enqueue, extract, and surrender operations.
Thread_queue_Surrender_operation Thread_queue_Operations::surrender |
This operation is used to dequeue the thread from the thread queue and optionally surrender the thread queue from a previous owner to the thread.
In addition to the optional surrender, there is a subtle difference between the extract and dequeue of a thread from a thread queue. In SMP configurations, FIFO fairness across schedulers for priority queues is only ensured by the dequeue done by the surrender operation and not by the extract operation.