Semaphore VIs

Owning Palette: Synchronization VIs and Functions

Requires: Base Development System. This topic might not match its corresponding palette in LabVIEW depending on your operating system, licensed product(s), and target.

Use the Semaphore VIs to limit the number of tasks that can simultaneously operate on a shared (protected) resource. A protected resource or critical section of code might include writing to global variables or communicating with external instruments.

You can use the Semaphore VIs to synchronize two or more separate, parallel tasks so that only one task at a time executes a critical section of code protected by a common semaphore. In particular, use these VIs when you want certain VIs or parts of a block diagram to wait until another VI or part of a block diagram is finished with the execution of a critical section.

Palette ObjectDescription
Acquire SemaphoreAcquires access to a semaphore.
Get Semaphore StatusReturns current status information of a semaphore.
Not A SemaphoreReturns TRUE if semaphore is not a valid semaphore refnum.
Obtain Semaphore ReferenceObtains a reference to an existing semaphore or creates a new semaphore and returns a reference to that semaphore.
Release SemaphoreReleases access to a semaphore. If the Acquire Semaphore VI is waiting for the semaphore this VI releases, it stops waiting and continues execution.
Release Semaphore ReferenceReleases a reference to a semaphore.