What puts threads in STOPPED state

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.