Solution
When running a sequence file using the Parallel or Batch process model, multiple test sockets may attempt to use the same hardware resource at the same time. If the resource only supports single‑client access — such as a power supply, communication bus, fixture mechanism, or shared instrument — you must prevent simultaneous use to avoid errors or undefined behavior.
TestStand offers three main ways to guarantee exclusive access:
All three options let you protect a critical section without disabling the Parallel or Batch execution flow.
Use Lock and Unlock Synchronization Steps (Most Explicit)
Insert a Lock step before the step that uses the exclusive resource, and an Unlock step immediately after it. All executions share the same lock name. When one socket acquires it, all other sockets wait until it is released.

Use Lock steps when:
- You want full control and visibility of the synchronized region
- The protected region spans multiple steps
- You need to name and reuse the same lock from different sequences
Those steps are available in the Insertion Palette under the Synchronization group or in the shortcut (right-click) menus Insert Step » Synchronization » Lock and Insert Step » Synchronization » Unlock
For reference:
Use the Synchronization Panel in Step Settings
Instead of inserting separate Lock/Unlock steps, you can select the step that uses the resource and enable locking directly in its Synchronization panel. TestStand will automatically lock the resource before the step executes and release it once the step completes.
To configure it, go to the Step Settings pane, open the Properties tab and select the Synchronization category, as shown below.

Use the Lock setting in the Synchronization panel when:
- Only one step in your sequence uses the resource.
- You prefer cleaner sequences without extra steps.
- You want automatic lock lifetime management.
For reference:
Using the Batch Model’s Built-in Batch Synchronization
If you are using the Batch process model, you have an additional synchronization tool:
Batch Synchronization Step Type
This step type allows you to control how test sockets enter a synchronized region. It can act as:
- Serial (one socket at a time
- One Thread Only (just the first socket executes while the others skip)
- Parallel (all sockets must arrive and execute together) - This one won't help for the scope of this discussion.
The screenshot below shows the Batch Synchronization steps defining a section with Serial synchronization.

Useful when coordinating actions such as:
- Fixture loading/unloading
- Mechanical operations
- Limited-access shared instruments
For reference:
Batch Synchronization Options in the Synchronization Panel
When using the Batch model, the Synchronization Panel for each step includes Batch-specific options, such as:
- Entry/exit behavior
- Only one socket at a time” mode
- All sockets must arrive before continuing” mode

This is the simplest way to enforce mutual exclusion in batch systems without inserting additional steps.
For reference:
Choosing the Right Method
The table below lists different use cases and the recommended approach for each.
| Use Case | Recommended Solution |
|---|
| Only one step uses the shared resource | Per-step Synchronization Panel |
| A section of multiple steps needs protection | Lock/Unlock steps |
| Using Batch model and want socket-level coordination | Batch Synchronization |
| Want maximum clarity for future developers | Lock/Unlock steps |