Vuo  0.5.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages

Vuo compositions are multithreaded to improve performance. When a composition is compiled, the Vuo compiler (a parallelizing compiler) generates code that allows independent parts of the composition to run concurrently. The creator of a composition can control some of the composition's threading behavior, such as allowing a long-running task to run in the background (see the Vuo Manual).

The Vuo compiler handles most thread synchronization automatically. It guarantees that each node's functions (Node Methods: Stateless and Node Methods: Stateful) will be called sequentially (one at a time), not concurrently. For example, two calls to nodeEvent(), or a call to nodeInstanceEvent() and a call to nodeInstanceTriggerStop(), will never overlap for a node (although they may overlap for different instances of a node class). A node class's functions don't need to be mutually thread-safe or re-entrant.

There are some cases where you need to handle synchronization when implementing node classes, port types, and library modules: