[gccsdk] UnixLib, Signals & Threading

Alex Waugh alex at alexwaugh.com
Wed Jul 9 13:01:51 PDT 2008

Adam <lists at snowstone.org.uk> wrote:

> In message <9b8757bb4f.ajw498 at caramel.cp15.org>, Alex Waugh  wrote:
> > Adam <lists at snowstone.org.uk> 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


Alex Waugh                                           alex at alexwaugh.com

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

More information about the gcc mailing list