Hi Mark,
I've implemented your suggestion.
-- Fons
Mark Messier wrote:
>
> Hello,
>
> I was wondering if it would be possible to change the behavior of
> TRint::Run(Bool_t retrn) when retrn=kTRUE and the TRint object was created
> with the "-q" option so that TApplication::QuitOpt() is true. Right now
> the result is that under these conditions a call to:
>
> TRint::Run(kTRUE)
>
> will exit the program via exit(0), which means that objects still
> in existence will not be deleted before exiting the program. Please see
> the example program below. I am using ROOT 3.01/03, 25 May 2001.
>
> Specifically, the change I would like is in the following lines of code in
> TRint.cxx:
>
> void TRint::Run(Bool_t retrn)
> {
> ...
> // if (QuitOpt())
> // Terminate(0);
> // Changed to:
> //
> if (QuitOpt()) {
> if (retrn == kTRUE) return
> Terminate(0);
> }
> //
> // And likewise a few lines down prior to Terminate(0)
> //
> }
>
> I'll attach a simple test program which demonstrates this behavior:
>
> //=== begin test program
> #include <iostream>
> #include "TROOT.h"
> #include "TRint.h"
> class DeleteMe
> {
> public:
> DeleteMe() { cerr << "vvvvv Object Created vvvvv\n"; }
> ~DeleteMe() { cerr << "^^^^^ Object Deleted ^^^^^\n"; }
> };
> int main(int argc, char** argv) {
> TROOT troot("troot","troot");
> TRint* app = new TRint("app",&argc,argv,0,0,kTRUE);
> DeleteMe x;
> app->Run(kTRUE);
> return 0;
> }
> //=== end test program
>
> heplminos2% g++ example.cxx `root-config --cflags --libs`
> heplminos2% ./a.out
> vvvvv Object Created vvvvv
> root [0] .q
> root [1] ^^^^^ Object Deleted ^^^^^
> heplminos2% ./a.out -q
> vvvvv Object Created vvvvv
> root [0]
>
> Notice that the second case using the -q option has no message indicating
> that the object x was deleted. However, I think these two cases should
> behave identically.
>
> Thank you,
> Mark
> ========================================================================
> Mark Messier e-mail: messier@huhepl.harvard.edu
> Harvard University http://www.hepl.harvard.edu/~messier
> 42 Oxford Street Tel. (617) 496-2361
> Cambridge, MA 02138
--
Org: CERN, European Laboratory for Particle Physics.
Mail: 1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248
WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:48 MET