RTEMS
|
Information required to manage a thread while it is blocked. More...
#include <thread.h>
Public Attributes | |
uint32_t | count |
void * | return_argument |
Thread_Wait_information_Object_argument_type | return_argument_second |
uint32_t | option |
uint32_t | return_code |
Atomic_Uint | flags |
This field contains several flags used to control the wait class and state of a thread in case fine-grained locking is used. | |
struct { | |
ISR_lock_Control Default | |
Thread wait default lock. | |
Chain_Control Pending_requests | |
The pending thread wait lock acquire or tranquilize requests in case the thread is enqueued on a thread queue. | |
Thread_queue_Gate Tranquilizer | |
Tranquilizer gate used by _Thread_Wait_tranquilize(). More... | |
} | Lock |
Thread wait lock control block. More... | |
Thread_queue_Link | Link |
Thread queue link provided for use by the thread wait lock owner to build a thread queue path. | |
Thread_queue_Queue * | queue |
The current thread queue. More... | |
const Thread_queue_Operations * | operations |
The current thread queue operations. More... | |
Thread_queue_Heads * | spare_heads |
Information required to manage a thread while it is blocked.
This contains the information required to manage a thread while it is blocked and to return information to it.
uint32_t Thread_Wait_information::count |
struct { ... } Thread_Wait_information::Lock |
Thread wait lock control block.
Parts of the thread wait information are protected by the thread wait default lock and additionally a thread queue lock in case the thread is enqueued on a thread queue.
The thread wait lock mechanism protects the following thread variables
const Thread_queue_Operations* Thread_Wait_information::operations |
The current thread queue operations.
This field is protected by the thread lock wait default lock.
uint32_t Thread_Wait_information::option |
Thread_queue_Queue* Thread_Wait_information::queue |
The current thread queue.
If this field is NULL the thread is not enqueued on a thread queue. This field is protected by the thread wait default lock.
void* Thread_Wait_information::return_argument |
Thread_Wait_information_Object_argument_type Thread_Wait_information::return_argument_second |
uint32_t Thread_Wait_information::return_code |
Thread_queue_Gate Thread_Wait_information::Tranquilizer |
Tranquilizer gate used by _Thread_Wait_tranquilize().
This gate is closed by _Thread_Wait_claim(). In case there are no pending requests during a _Thread_Wait_restore_default(), then this gate is opened immediately, otherwise it is placed on the pending request chain and opened by _Thread_Wait_remove_request_locked() as the last gate on the chain to signal overall request completion.