# PR_WaitSemaphore Returns the value of the environment variable. ## Syntax ```{code} #include NSPR_API(PRStatus) PR_WaitSemaphore(PRSem *sem); ``` ### Parameter The function has the following parameter: `sem` : A pointer to a `PRSem` structure returned from a call to {ref}`PR_OpenSemaphore`. ### Returns {ref}`PRStatus` ## Description {ref}`PR_WaitSemaphore` tests the value of the semaphore. If the value of the semaphore is > 0, the value of the semaphore is decremented and the function returns. If the value of the semaphore is 0, the function blocks until the value becomes > 0, then the semaphore is decremented and the function returns. The "test and decrement" operation is performed atomically.