On Thu, May 11, 2000 at 09:05:58PM +0200, Michael Natterer <mitschel@xxxxxxxxxxxxxxx> wrote: > > The libgimp code could try to set the signal handler to SIG_DFL before > > executing the code of the plug-in. > > We don't need to do this, as (exec()'ed) children can't inherit handlers > from their parent anyway. If you ignore signals (you said so) this is very well inherited by children (this is how programs like nohup work). However, this is not necessarily a problem, of course. It might just be unexpected by libgimp in the child, for example, or by plug-ins, and most probably it's not the intented action to ignore any signals by default (where the default action isn't ignore) in the plug-ins. I would really prefer leaving most of the signal handlers intact (or under program control). It would be nice if a plug-in could choose to call gimp_signal_safetynet (); If it wanted all it's signals to be clobbered. And gimp_main could change the signals it really requires. The problem is that now, a call to gimp_main (which doesn't return) changes signal handlers without leaving the caller the option of not (or the option of later re-setting them again, since "later" might be never) > > signal handlers installed by the Gimp should call the ones that were > > installed before. But then we have to support the systems that have > > Do you really think this is neccessary? I can imagine that gimp needs control over a few signals (although I cannot imagine which ones at the moment). The current situation, however, is, that gimp (or glib?) changes many signals in plug-ins (like SIGPIPE) without any visible benefit. Inherited settings are not the problem here (no handlers). > I'd rather like to wait it the current code (which is not really > different from the old one except that it uses sigaction()) works as > expected. It's indeed the behaviour of the old code that's bugging me ;) But I get a bit nervous when the number of clobbered signals increases, rather then decreases. -- -----==- | ----==-- _ | ---==---(_)__ __ ____ __ Marc Lehmann +-- --==---/ / _ \/ // /\ \/ / pcg@xxxxxxxxxxxxx |e| -=====/_/_//_/\_,_/ /_/\_\ XX11-RIPE --+ The choice of a GNU generation | |