Releases access to a semaphore. If Acquire Semaphore is waiting for the semaphore this VI releases, it stops waiting and continues execution. Details

![]() |
semaphore is a reference associated with a semaphore. | ||||||
![]() |
error in describes error conditions that occur before this VI or function runs.
The default is no error. If an error occurred before this VI or function runs, the VI or function passes the error in value to error out. This VI or function runs normally only if no error occurred before this VI or function runs. If an error occurs while this VI or function runs, it runs normally and sets its own error status in error out. Use the Simple Error Handler or General Error Handler VIs to display the description of the error code. Use error in and error out to check errors and to specify execution order by wiring error out from one node to error in of the next node.
| ||||||
![]() |
semaphore out has the same value as semaphore. | ||||||
![]() |
error out contains error information. If error in indicates that an error occurred before this VI or function ran, error out contains the same error information. Otherwise, it describes the error status that this VI or function produces.
Right-click the error out front panel indicator and select Explain Error from the shortcut menu for more information about the error.
|
To ensure correct functionality, call Release Semaphore later in the dataflow from Acquire Semaphore. LabVIEW protects the code between Acquire Semaphore and the Release Semaphore so only as many parallel tasks can run simultaneously the protected code as the size of the semaphore.
If a semaphore is already acquired and you call Release Semaphore without an Acquire Semaphore preceding it somewhere earlier in the dataflow, LabVIEW makes the semaphore available for another Acquire Semaphore to proceed, which violates the idea of semaphores protecting shared resources. For most use cases, this results in incorrect behavior, but LabVIEW cannot detect the situation for you.
This VI attempts to execute even if the error in parameter contains an error.
If a semaphore is currently unacquired, Release Semaphore returns error code 1111.