Hi Matt, this is the list of signals that are handled by default by ROOT: kSigChild kSigBus kSigSegmentationViolation kSigIllegalInstruction kSigSystem kSigPipe kSigAlarm kSigUrgent kSigFloatingException kSigWindowChanged The signals kSigBus, kSigSegmentationViolation, kSigIllegalInstruction and kSigFloatingException cause the printing of the *** Break *** message and make a long jump back to the ROOT prompt. No other custom TSignalHandlers can be added to these signals. The kSigAlarm signal handles a-sync timers. The kSigWindowChanged signal handles terminal window resizing The other signals have no other behaviour then that any registered TSignalHandler::Notify()'s will be called. When building in interactive application using the TRint object also the kSigInterrupt signal will be handled (message: "*** Break *** keyboard interrupt") plus long jump back to the ROOT command prompt. If no TRint object is created there will be no kSigInterrupt handling. All signals can be reset to their default Unix behaviour using the call TSystem::ResetSignal(). All signals can be ignored using TSystem::IgnoreSignal() (TSystem::IgnoreInterrupt() is a utility function to toggle the handling of the interrupt signal. Typically TSystem::IgnoreInterrupt() is called to prevent a SIGINT to interrupt some important call (like writing to ROOT file)). If TRint is used and the default ROOT interrupt handler is not desired use TApplication::GetSignalHandler() to get the interrupt handler and to remove it using TSystem::RemoveSignalHandler(). Hope this is clear. Cheers, Fons. PS: in some cases ROOT ends up in a situation where ctrl-c does nothing and one has to kill the ROOT session from another shell. This happens when ROOT ends up in a situation where the SIGINT had been set to be ignored. This is not desired and we are investigating the issue. On Fri, 2004-01-09 at 13:56, Matt Palmer wrote: > Hi, > I'm using ROOT as a library for a set of external applications. It > seems that ROOT automatically installs some signal handlers which I > would much rather it didn't do for these applications. Is there any way > of stopping this behaviour? > > Also, does ROOT install unexpected exception handlers or do other things > which may modify how programs they are linked to behave? > > Thanks, > Matt -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://www.rademakers.org/fons/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET