RTEMS
Public Attributes | List of all members
Thread_queue_Context Struct Reference

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...
 

Detailed Description

Thread queue context for the thread queue methods.

See also
_Thread_queue_Context_initialize().

Definition at line 198 of file threadq.h.

Member Data 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().

Definition at line 304 of file threadq.h.

◆ 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(), and _Thread_queue_Add_timeout_realtime_timespec().

Definition at line 221 of file threadq.h.

◆ Path

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.

◆ Timeout

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.

Definition at line 293 of file threadq.h.


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