sem_acquire() blocks (if necessary) until the semaphore can be acquired. A process attempting to acquire a semaphore which it has already acquired will block forever if acquiring the semaphore would cause its maximum number of semaphore to be exceeded.
After processing a request, any semaphores acquired by the process but not explicitly released will be released automatically and a warning will be generated.