32 uint32_t number_of_waiting_threads;
37 ++number_of_waiting_threads;
44 return STATUS_BARRIER_AUTOMATICALLY_RELEASED;
53 CORE_BARRIER_TQ_OPERATIONS,
static __inline__ uint32_t _CORE_barrier_Surrender(CORE_barrier_Control *the_barrier, Thread_queue_Context *queue_context)
Manually releases the barrier.
#define STATES_WAITING_FOR_BARRIER
Thread queue context for the thread queue methods.
Inlined Routines Associated with the SuperCore Barrier.
Status_Control _CORE_barrier_Seize(CORE_barrier_Control *the_barrier, Thread_Control *executing, bool wait, Thread_queue_Context *queue_context)
Waits for the barrier.
Thread_queue_Queue Queue
The actual thread queue.
static __inline__ void _Thread_queue_Context_set_thread_state(Thread_queue_Context *queue_context, States_Control thread_state)
Sets the thread state for the thread to enqueue in the thread queue context.
CORE_barrier_Attributes Attributes
Thread_queue_Control Wait_queue
static __inline__ void _CORE_barrier_Acquire_critical(CORE_barrier_Control *the_barrier, Thread_queue_Context *queue_context)
Acquires critical core barrier.
uint32_t number_of_waiting_threads
Inlined Routines Associated with Thread State Information.
Inlined Routines from the Thread Handler.
static __inline__ Status_Control _Thread_Wait_get_status(const Thread_Control *the_thread)
Get the status of the wait return code of the thread.
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.
static __inline__ bool _CORE_barrier_Is_automatic(CORE_barrier_Attributes *the_attribute)
Checks if the barrier is automatic.