Adam <[EMAIL PROTECTED]> wrote:

> In message <[EMAIL PROTECTED]>, Alex Waugh  wrote:
> 
> > Adam <[EMAIL PROTECTED]> wrote:
> 
> > > I'm trying to get my head around handling signals in a threaded app.
> > > However, I keep just getting a stack backtrace written to stderr. As far
> > > as I can tell my signal handler never gets a look in.
> > 
> > Signals should execute in the context of the thread that caused them,
> > however they currently execute in the global context which makes it hard
> > to implement sigwait correctly as the context switcher wouldn't know
> > which thread to wake up on a signal (so it doesn't bother).
> > The only way to send a signal that sigwait will notice is to use
> > pthread_kill().
> 
> Thanks a lot for that - it's good to at least know it won't work in
> principle.
> 
> What, in that case, is the recommeded way to deal with signals in a
> multi-threaded app? A disappearing app + stackdump-to-stderr is not a
> total disaster while debugging, but it's not ideal for a released
> program.

The normal ANSI signal handling functions should work fine, provided you
don't call any pthread functions from them or expect them to be context
switched.

Alex

-- 
Alex Waugh                                           [EMAIL PROTECTED]

PHP, Roots, Subversion, WebJames and more from http://www.alexwaugh.com/

_______________________________________________
GCCSDK mailing list [email protected]
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

Reply via email to