11    pthread_mutexattr_init(&(completion->
attr));
 
   12    pthread_mutexattr_setpshared(&(completion->
attr), PTHREAD_PROCESS_SHARED);
 
   13    pthread_mutex_init(&(completion->
mutex), &(completion->
attr));
 
   14    pthread_mutex_lock(&(completion->
mutex));
 
 
   19    pthread_mutex_trylock(&(completion->
mutex)); 
 
   20    pthread_mutex_unlock(&(completion->
mutex));
 
 
   25    pthread_mutex_lock(&(completion->
mutex));
 
 
   32    if (!(ret_val = pthread_mutex_trylock(&(completion->
mutex))) )
 
   33        pthread_mutex_unlock(&(completion->
mutex));
 
 
   39    sem_init(&(sem->
sem), 1, 0);
 
 
   46    sem_getvalue(&(sem->
sem), &ret);
 
 
   52    sem_post(&(sem->
sem));
 
 
   57    sem_wait(&(sem->
sem));
 
 
   64    pthread_condattr_init(&(cond->
c_attr));
 
   65    pthread_condattr_setpshared(&(cond->
c_attr), PTHREAD_PROCESS_SHARED);
 
 
   81    pthread_cond_broadcast(&(cond->
condition));
 
 
pthread_condattr_t c_attr
void async_semaphore_inc(async_semaphore_s *sem)
void async_condition_wait(async_condition_s *cond)
void async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem)
int async_semaphore_value(async_semaphore_s *sem)
void async_condition_unlock(async_condition_s *cond)
void async_condition_notify(async_condition_s *cond)
void async_semaphore_dec(async_semaphore_s *sem)
void async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc)
void async_completion_init(async_meta_s *meta, async_completion_s *completion)
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
void async_completion_complete(async_completion_s *completion)
void async_meta_init_always(async_meta_s *meta)
int async_completion_check(async_completion_s *completion)
void async_completion_wait(async_completion_s *completion)
void async_condition_lock(async_condition_s *cond)
void async_meta_exit(async_meta_s *meta)