Holding and Releasing Processes and Threads
You can synchronize execution manually using a hold command, or automatically by setting a barrier point.
When a process or a thread is held, it ignores any command to resume executing. For example, if you placed a hold on a single process in a control group that contained three processes, selecting Group > Go would resume executing just the other two processes in the group. The held process would ignore the Go command.
Manually holding and releasing processes and threads is useful when:
You need to run a subset of the processes and threads. You can manually hold all but those you want to run.
A process or thread is held at a barrier point and you want to run it without first running all the other processes or threads in the group to that barrier. In this case, you release the process or the thread manually and then run it.
See
Barrier Points for more information on manually holding and releasing barrier breakpoints.
Holding a Process
To hold or release a hold on a process, select the process in the Processes & Threads view, then toggle the menu item Process > Hold:
When TotalView is holding a process, the Processes & Threads view displays Stopped, and the title and status bar display “[Held”] for that process.
If a process or a thread is running when you set or release a hold, TotalView stops the process or thread and then holds it. TotalView lets you hold and release processes independently from threads.
If you hold a process, then choose Process > Go, TotalView launches a warning popup that you first need to unhold the process before running it:
Holding a Thread
NOTE: The ability to hold a thread will be added to the UI in an upcoming release.
(CLI only)). To hold or release a thread, use the CLI:
Setting the focus changes the scope.