Each command level has its own set of threads. These threads are suspended
when a new level is entered and resumed when the owning level again becomes
the current level.
A thread that raises an error is not resumed unless
explicitly restarted using the ,proceed
command.
In addition to any threads spawned by the user, each level has a thread
that runs the command processor on that level.
A new command-processor thread is started if the current one
dies or is terminated.
When a command level is abandoned for a lower level, or when
a level is restarted using ,reset
, all of the threads on that
level are terminated and any dynamic-wind
"after" thunks are run.
The following commands are useful when debugging multithreaded programs:
,resume [number
]
Number
defaults to zero.
,threads
,exit-when-done [exp
]
Exp
should evaluate to an integer which is then
returned to the calling program.
Previous: Resource query and control | Next: Quite obscure