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)