Synchronization VIs and Functions

Owning Palette: Data Communication VIs and Functions, Programming 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 Synchronization VIs and functions to synchronize tasks executing in parallel and to pass data between parallel tasks.

Palette ObjectDescription
First Call?Indicates that a subVI or section of a block diagram is running for the first time. The First Call? function returns TRUE only the first time you call it after you click the Run button.
Synchronize Data FlowPasses through the values of the input wires after the upstream code executes.

Use this VI to synchronize multiple parallel code paths at a single point of data flow to ensure a certain execution order.


SubpaletteDescription
Notifier Operations FunctionsUse the Notifier Operations functions to suspend the execution of a block diagram until you receive data from another section of the block diagram or from another VI running in the same application instance.
Occurrences FunctionsUse the Occurrences functions to control separate, synchronous activities.
Queue Operations FunctionsUse the Queue Operations functions to create a queue for communicating data between sections of a block diagram or from another VI.
Real-Time FIFO VIsUse the Real-Time FIFO VIs to transfer data between VIs in an application. An RT FIFO acts like a fixed queue, where the first value you write to the FIFO is the first value that you can read from the FIFO.
Rendezvous VIsUse the Rendezvous VIs to synchronize two or more separate, parallel tasks at specific points of execution. Each task that reaches the rendezvous waits until the specified number of tasks are waiting, at which point all tasks proceed with execution.
Semaphore VIsUse 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.