The sem_post function increments (unlocks) the semaphore pointed to by sem. If there are threads blocked on the semaphore when sem_post is called, then the highest priority thread that has been blocked the longest on the semaphore will be allowed to return from sem_wait.
The sem_post function is signal-reentrant and may be called within signal handlers.
.Rv -std sem_post
The sem_post function will fail if: