RTEMS 6.1-rc2
Loading...
Searching...
No Matches
Data Fields
Thread_queue_Context Struct Reference

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.
 

Detailed Description

Thread queue context for the thread queue methods.

See also
_Thread_queue_Context_initialize().

Field Documentation

◆ deadlock_callout

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.

See also
_Thread_queue_Context_set_deadlock_callout().

◆ enqueue_callout

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.

See also
_Thread_queue_Enqueue_do_nothing_extra(). _Thread_queue_Add_timeout_ticks(), _Thread_queue_Add_timeout_monotonic_timespec(), and _Thread_queue_Add_timeout_realtime_timespec().

◆ 

union { ... } Thread_queue_Context::Timeout

Interval to wait.

May be used by the enqueue callout to register a timeout handler.

◆ update

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.


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