19#ifndef ASTERISK_SEMAPHORE_H
20#define ASTERISK_SEMAPHORE_H
31#ifdef HAS_WORKING_SEMAPHORE
40#define AST_SEM_VALUE_MAX SEM_VALUE_MAX
46 return sem_init(&sem->real_sem, pshared,
value);
51 return sem_destroy(&sem->real_sem);
56 return sem_post(&sem->real_sem);
61 return sem_wait(&sem->real_sem);
66 return sem_timedwait(&sem->real_sem, abs_timeout);
71 return sem_getvalue(&sem->real_sem, sval);
92#define AST_SEM_VALUE_MAX INT_MAX
Asterisk locking-related definitions:
pthread_cond_t ast_cond_t
int ast_sem_getvalue(struct ast_sem *sem, int *sval)
Gets the current value of the semaphore.
int ast_sem_init(struct ast_sem *sem, int pshared, unsigned int value)
Initialize a semaphore.
int ast_sem_destroy(struct ast_sem *sem)
Destroy a semaphore.
int ast_sem_timedwait(struct ast_sem *sem, const struct timespec *abs_timeout)
Decrements the semaphore, waiting until abs_timeout.
int ast_sem_wait(struct ast_sem *sem)
Decrements the semaphore.
int ast_sem_post(struct ast_sem *sem)
Increments the semaphore, unblocking a waiter if necessary.
Structure for mutex and tracking information.