EMT trap ???

Hello,

by now I’ve created a huge application with many different treads and
processes; they use synchronizing via condvars, messages and pulses. There
is a “EMT trap” that occures at a certain stage of my application.

Does anybody know when this trap gets called (possible error sources) or
does anybody have a link to specific information about it?

Thank you.

Nnamdi

“Nnamdi Kohn” <nnamdi.kohn@web.de> wrote in message
news:c3f53l$cvf$1@inn.qnx.com

Hello,

by now I’ve created a huge application with many different treads and
processes; they use synchronizing via condvars, messages and pulses. There
is a “EMT trap” that occures at a certain stage of my application.

Does anybody know when this trap gets called (possible error sources) or
does anybody have a link to specific information about it?

You’re probably getting hit with a SIGDEADLK (same signo as SIGEMT). When a
mutex is owned/locked, and then unmapped, any other threads blocked waiting
on that mutex will get woken up either with a registered event, or this
signal.

\

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>


\

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

Thanks, Adam.

After getting hit by this trap, how can I clean up the QNX system
completely, so that I might be able to restart the concerning processes
again? Currently, QNX hangs after this EMT trap so that I have to restart
the whole QNX system after each application start. Which QNX functions would
help do the cleaning up?

Regards.

Nnamdi

“Adam Mallory” <amallory@qnx.com> schrieb im Newsbeitrag
news:c3f7ep$f73$1@inn.qnx.com

“Nnamdi Kohn” <> nnamdi.kohn@web.de> > wrote in message
news:c3f53l$cvf$> 1@inn.qnx.com> …
Hello,

by now I’ve created a huge application with many different treads and
processes; they use synchronizing via condvars, messages and pulses.
There
is a “EMT trap” that occures at a certain stage of my application.

Does anybody know when this trap gets called (possible error sources) or
does anybody have a link to specific information about it?

You’re probably getting hit with a SIGDEADLK (same signo as SIGEMT). When
a
mutex is owned/locked, and then unmapped, any other threads blocked
waiting
on that mutex will get woken up either with a registered event, or this
signal.

\

Cheers,
Adam

QNX Software Systems Ltd.
[ > amallory@qnx.com > ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <> pschon@baste.magibox.net


\

Cheers,
Adam

QNX Software Systems Ltd.
[ > amallory@qnx.com > ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <> pschon@baste.magibox.net

“Nnamdi Kohn” <nnamdi.kohn@web.de> wrote in message
news:c3pdnq$3dh$1@inn.qnx.com

Thanks, Adam.

After getting hit by this trap, how can I clean up the QNX system
completely, so that I might be able to restart the concerning processes
again? Currently, QNX hangs after this EMT trap so that I have to restart
the whole QNX system after each application start. Which QNX functions
would
help do the cleaning up?

QNX shouldn’t be hanging - are you sure it isn’t a thread running in a tight
loop at a high priority (especially now that some of your sync objects are
probably in wierd states)? You can start a shell with a high priority
(higher than all other threads) on a console before you start your apps to
see whats going on.

If QNX is actually hanging, can you post the architecture,board,QNX version
and test case causing the issue please.

\

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>