I’m trying to diagnose a deadlock bug.
I’m seeing that most of the threads in the process are in STOPPED state,
one is waiting for a mutex which is held by one of the STOPPED threads.
A few other threads are in CONDVAR state.
Under what conditions is a thread put in STOPPED state?
Previously, Rick DeNatale wrote in qdn.public.qnxrtp.os:
I’m trying to diagnose a deadlock bug.
I’m seeing that most of the threads in the process are in STOPPED state,
one is waiting for a mutex which is held by one of the STOPPED threads.
A few other threads are in CONDVAR state.
Under what conditions is a thread put in STOPPED state?
1.) Thread has received a STOP signal and thus can be restarted
with SIGCONT.
2.) Process was spawned to come up in a stopped state. Probably the
only use of this is for a debugger.
Is this helpful? Can you give a little more info. What are the purposes
of each thread? Can you describe your app a little more.
The System Architecture guide, Neutrino Microkernel section, has a state
diagram which shows all possible states and how they switch.