Execution mode

Switch execution is inherently multi-threaded, so in principle all tasks can run in parallel. To help reduce implementation complexities (both in the Switch framework and in a script), concurrency is limited in a number of ways as explained in this topic.

Operating system scripting languages

Switch severely limits the concurrency of AppleScript and VBScript scripts (on Mac and Windows, respectively): only a single AppleScript or VBScript entry point can be executing at any time. This is due to an implementation limit which may be lifted in a future version. Thus the remainder of this topic applies only to JavaScript scripts.

Script expressions

Script expressions may be evaluated in parallel with each other and with other scripts. Script expressions should not have side effects (other than issuing log messages) so this parallelism should not cause any problems.

Terminology

In the following discussion it is important to differentiate between a script package (that is, the definition of a script) and the script instances created by associating a script package with a flow element (through a script element or a scripted plug-in). There may be several script instances for a particular script package.

Contents