示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#4
0
文件: mutex.c 项目: ketul93/rtems
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;
}