|
|
static bool | _Thread_queue_Link_equal (const void *left, const RBTree_Node *right) |
| |
|
static bool | _Thread_queue_Link_less (const void *left, const RBTree_Node *right) |
| |
|
static void * | _Thread_queue_Link_map (RBTree_Node *node) |
| |
|
static Thread_queue_Link * | _Thread_queue_Link_find (Thread_queue_Links *links, Thread_queue_Queue *source) |
| |
|
static bool | _Thread_queue_Link_add (Thread_queue_Link *link, Thread_queue_Queue *source, Thread_queue_Queue *target) |
| |
|
static void | _Thread_queue_Link_remove (Thread_queue_Link *link) |
| |
| void | _Thread_queue_Path_release_critical (Thread_queue_Context *queue_context) |
| | Releases the thread queue path in a critical section. More...
|
| |
|
static void | _Thread_queue_Path_append_deadlock_thread (Thread_Control *the_thread, Thread_queue_Context *queue_context) |
| |
| bool | _Thread_queue_Path_acquire_critical (Thread_queue_Queue *queue, Thread_Control *the_thread, Thread_queue_Context *queue_context) |
| | Does nothing. More...
|
| |
| void | _Thread_queue_Enqueue_do_nothing_extra (Thread_queue_Queue *queue, Thread_Control *the_thread, Per_CPU_Control *cpu_self, Thread_queue_Context *queue_context) |
| | Does nothing. More...
|
| |
| void | _Thread_queue_Deadlock_status (Thread_Control *the_thread) |
| | Sets the thread wait return code to STATUS_DEADLOCK. More...
|
| |
| void | _Thread_queue_Deadlock_fatal (Thread_Control *the_thread) |
| | Results in an INTERNAL_ERROR_THREAD_QUEUE_DEADLOCK fatal error. More...
|
| |
| void | _Thread_queue_Enqueue (Thread_queue_Queue *queue, const Thread_queue_Operations *operations, Thread_Control *the_thread, Thread_queue_Context *queue_context) |
| | Blocks the thread and places it on the thread queue. More...
|
| |
| Status_Control | _Thread_queue_Enqueue_sticky (Thread_queue_Queue *queue, const Thread_queue_Operations *operations, Thread_Control *the_thread, Thread_queue_Context *queue_context) |
| | Enqueues the thread on the thread queue and busy waits for dequeue. More...
|
| |
|
static bool | _Thread_queue_Make_ready_again (Thread_Control *the_thread) |
| |
| bool | _Thread_queue_Extract_locked (Thread_queue_Queue *queue, const Thread_queue_Operations *operations, Thread_Control *the_thread, Thread_queue_Context *queue_context) |
| | Extracts the thread from the thread queue, restores the default wait operations and restores the default thread lock. More...
|
| |
| void | _Thread_queue_Unblock_critical (bool unblock, Thread_queue_Queue *queue, Thread_Control *the_thread, ISR_lock_Context *lock_context) |
| | Unblocks the thread which was on the thread queue before. More...
|
| |
| void | _Thread_queue_Extract_critical (Thread_queue_Queue *queue, const Thread_queue_Operations *operations, Thread_Control *the_thread, Thread_queue_Context *queue_context) |
| | Extracts the thread from the thread queue and unblocks it. More...
|
| |
| void | _Thread_queue_Extract (Thread_Control *the_thread) |
| | Extracts thread from thread queue. More...
|
| |
| void | _Thread_queue_Surrender (Thread_queue_Queue *queue, Thread_queue_Heads *heads, Thread_Control *previous_owner, Thread_queue_Context *queue_context, const Thread_queue_Operations *operations) |
| | Surrenders the thread queue previously owned by the thread to the first enqueued thread. More...
|
| |
| void | _Thread_queue_Surrender_sticky (Thread_queue_Queue *queue, Thread_queue_Heads *heads, Thread_Control *previous_owner, Thread_queue_Context *queue_context, const Thread_queue_Operations *operations) |
| | Surrenders the thread queue previously owned by the thread to the first enqueued thread. More...
|
| |
| Thread_Control * | _Thread_queue_Do_dequeue (Thread_queue_Control *the_thread_queue, const Thread_queue_Operations *operations) |
| | Dequeues the first thread waiting on the thread queue and returns it. More...
|
| |
Thread Queue Operations.
Definition in file threadqenqueue.c.