[gccsdk] UnixLib, Signals & Threading

Adam lists at snowstone.org.uk
Wed Jul 9 10:18:49 PDT 2008


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.

Cheers,
Adam

-- 
Adam Richardson          Carpe Diem
http://www.snowstone.org.uk/riscos/




More information about the gcc mailing list