sem_post() increments (unlocks) the semaphore pointed to by
sem. If the semaphore's value consequently becomes greater than zero,
then another process or thread blocked in a sem_wait(3) call will be
woken up and proceed to lock the semaphore.
RETURN VALUE
sem_post() returns 0 on success; on error, the value of the
semaphore is left unchanged, -1 is returned, and errno is set to
indicate the error.