TSM “One Thread Only” Step Does Not Wait for All Sites in New Thread

Updated Jul 2, 2026

Issue Details

 
I am using the TestStand Semiconductor Module (TSM) and configured a TSM Mulitest or Action step with One Thread Only. I expect execution to pause at this step until all sockets/sites reach it.
 
 
This behavior works as expected in a normal sequence. However, when the step is placed inside a subsequence configured with execution option New Thread, the sites proceed without waiting for the other sites to arrive.
 
 
If I instead use the native TestStand Rendezvous step in the same subsequence, synchronization behaves as expected.
 

Solution

This behavior is expected when using TSM steps inside a subsequence configured to run in a new thread.
 
TSM synchronization relies on batch context information stored in runtime variables. When running a sequence in a new thread, this context is not available, preventing TSM from synchronizing across sites.
 
To address this behavior:
 
  1. Avoid using “New Thread” for subsequences that require TSM synchronization
    • Run the subsequence in the same execution context.
    • Ensure the sequence is executed through the TSM process model entry points.
  2. Use TestStand Rendezvous for synchronization in new threads
    • Replace TSM One Thread Only with the native TestStand Rendezvous step when threading is required.
    • Rendezvous operates independently of TSM batch context.
  3. Understand TSM synchronization mechanism
    • TSM uses a MultisiteBatch reference stored under: SequenceContext.Thread.RuntimeVariables.NI.SemiconductorModule.Restred.Batch
    • This reference is initialized during process model plugin entry points.
  4. Consider execution model limitations
    • Running a sequence with New Thread does not invoke process model entry points.
    • Threads created this way:
      • Do not inherit runtime variables used for batch synchronization.
      • Exist within the same execution but lack TSM batch metadata.
  5. Use New Execution when TSM synchronization is required
    • Running sequences as a new execution ensures proper initialization of TSM runtime variables.
    • This enables correct multisite synchronization behavior.