static Thread_Control *_Mutex_Queue_acquire_critical( Mutex_Control *mutex, Thread_queue_Context *queue_context ) { Thread_Control *executing; executing = _Thread_Executing; _Thread_queue_Queue_acquire_critical( &mutex->Queue.Queue, &executing->Potpourri_stats, &queue_context->Lock_context.Lock_context ); return executing; }
static Thread_Control *_Condition_Queue_acquire_critical( Condition_Control *condition, ISR_lock_Context *lock_context ) { Thread_Control *executing; executing = _Thread_Executing; _Thread_queue_Queue_acquire_critical( &condition->Queue.Queue, &executing->Potpourri_stats, lock_context ); return executing; }
static Thread_Control *_Semaphore_Queue_acquire( Semaphore_Control *sem, Thread_queue_Context *queue_context ) { Thread_Control *executing; _ISR_lock_ISR_disable( &queue_context->Lock_context.Lock_context ); executing = _Thread_Executing; _Thread_queue_Queue_acquire_critical( &sem->Queue.Queue, &executing->Potpourri_stats, &queue_context->Lock_context.Lock_context ); return executing; }
static Thread_Control *_Mutex_Queue_acquire( Mutex_Control *mutex, ISR_lock_Context *lock_context ) { Thread_Control *executing; _ISR_lock_ISR_disable( lock_context ); executing = _Thread_Executing; _Thread_queue_Queue_acquire_critical( &mutex->Queue.Queue, &executing->Potpourri_stats, lock_context ); return executing; }