RTEMS
|
Thread queue context for the thread queue methods. More...
#include <threadq.h>
Public Attributes | |
Thread_queue_Lock_context | Lock_context |
The lock context for the thread queue acquire and release operations. | |
States_Control | thread_state |
The thread state for _Thread_queue_Enqueue(). | |
Thread_queue_Enqueue_callout | enqueue_callout |
The enqueue callout for _Thread_queue_Enqueue(). More... | |
union { | |
Watchdog_Interval ticks | |
The timeout in ticks. | |
const void * arg | |
The timeout argument, e.g. pointer to struct timespec. | |
} | Timeout |
Interval to wait. More... | |
struct { | |
Chain_Control Links | |
The chain of thread queue links defining the thread queue path. | |
Thread_queue_Link Start | |
The start of a thread queue path. | |
Thread_queue_Link Deadlock | |
In case of a deadlock, a link for the first thread on the path that tries to enqueue on a thread queue. | |
} | Path |
Representation of a thread queue path from a start thread queue to the terminal thread queue. More... | |
struct { | |
Priority_Actions Actions | |
A priority action list. | |
size_t update_count | |
Count of threads to update the priority via _Thread_Priority_update(). | |
Thread_Control * update [2] | |
Threads to update the priority via _Thread_Priority_update(). More... | |
} | Priority |
Block to manage thread priority changes due to a thread queue operation. | |
Thread_queue_Deadlock_callout | deadlock_callout |
Invoked in case of a detected deadlock. More... | |
Thread queue context for the thread queue methods.
Thread_queue_Deadlock_callout Thread_queue_Context::deadlock_callout |
Invoked in case of a detected deadlock.
Must be initialized for _Thread_queue_Enqueue() in case the thread queue may have an owner, e.g. for mutex objects.
Thread_queue_Enqueue_callout Thread_queue_Context::enqueue_callout |
The enqueue callout for _Thread_queue_Enqueue().
The callout is invoked after the release of the thread queue lock with thread dispatching disabled. Afterwards the thread is blocked. This callout must be used to install the thread watchdog for timeout handling.
struct { ... } Thread_queue_Context::Path |
Representation of a thread queue path from a start thread queue to the terminal thread queue.
The start thread queue is determined by the object on which a thread intends to block. The terminal thread queue is the thread queue reachable via thread queue links whose owner is not blocked on a thread queue. The thread queue links are determined by the thread queue owner and thread wait queue relationships.
union { ... } Thread_queue_Context::Timeout |
Interval to wait.
May be used by the enqueue callout to register a timeout handler.
Thread_Control* Thread_queue_Context::update[2] |
Threads to update the priority via _Thread_Priority_update().
Currently, a maximum of two threads need an update in one rush, for example the thread of the thread queue operation and the owner of the thread queue.