On Fri, Jan 09, 2004 at 06:26:38PM +0100, Valeriy Onuchin wrote: > > I'm using ROOT as a library for a set of external applications. > > It seems that ROOT automatically installs some signal handlers... > > Is there any way of stopping this behaviour? > > you can add and remove signal handlers by using > http://root.cern.ch/root/html310/TSystem.html#TSystem:AddSignalHandler > http://root.cern.ch/root/html310/TSystem.html#TSystem:RemoveSignalHandler > We have the same problem: ROOT libraries install unwanted signal handlers. One solution is to modify the current behaviour: - the ROOT "toolkit" installs NO signal handlers - the ROOT "application" installs whatever handlers it does now. In related news, I think some of the ROOT signal handlers are bogus. For example the Ctrl-C handler makes it very hard to kill the ROOT application. I am using the latest release (3.10.2) to process ROOT trees using a bog standard TSelector. When I am looping over a tree, pressing Ctrl-C does one of several things, randomly (none of them Do What I Mean, that is, stop the program, return me to the shell prompt): - print a message: "ctrl-C pressed", then continue processing the tree, - produce a core dump, - produce a ROOT stack trace (+ a core dump, sometimes?) - give a "root>" prompt. Entering ".q" - hard hang ROOT Then the ROOT code to print stack traces often gets confused and hangs or crashes with a core dump. That said, I would prefer if the ROOT application did not install any fancy-shmancy signal handlers, too. -- Konstantin Olchanski Data Acquisition Systems: The Bytes Must Flow! Email: olchansk-at-triumf-dot-ca Snail mail: 4004 Wesbrook Mall, TRIUMF, Vancouver, B.C., V6T 2A3, Canada
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET