sem_t sem_mutex = 1, sem_barreira = 0; sem_wait(sem_mutex); c++; if (c < N) { sem_post(sem_mutex); sem_wait(sem_barreira); } c--; if (c > 0) sem_post(sem_barreira); else sem_post(sem_mutex);