RTEMS 6.1-rc4
|
Thread queue context for the thread queue methods. More...
#include <threadq.h>
Data Fields | |
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(). | |
union { | |
Watchdog_Interval ticks | |
The timeout in ticks. | |
const void * arg | |
The timeout argument, e.g. pointer to struct timespec. | |
} | Timeout |
Interval to wait. | |
bool | timeout_absolute |
If this member is true, the timeout shall be absolute, otherwise it shall be relative to the current time of the clock. | |
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. | |
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.
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.