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
