/* * Implementação de semáforos utilizando mutex-locks * e variáveis de condição */ #include typedef struct sem_t { int c, n_wait; pthread_mutex_t lock; pthread_cond_t cond; } sem_t; int sem_init(sem_t *sem, int pshared, unsigned int value); int sem_wait(sem_t * sem); int sem_trywait(sem_t * sem); int sem_post(sem_t * sem); int sem_getvalue(sem_t * sem, int * sval); int sem_destroy(sem_t * sem);