> This is only for typing exit() on the cint command line. The behaviour > is the same as typing .q except that the exit() argument is passed back > to the shell, which is needed in shell scripts where one wants to test > for script exit status. If you want to handle multiple threads you will > have to do that in your code. How ? How the user's thread knows it is about to be killed due the entire process is about to be killed ? And how the proper termination order are supposed to be set ? (Yes, it is not solely the "exit(0)" function issue). Valeri > -- Fons > > > > On Thu, 2002-05-02 at 19:08, Valeri Fine wrote: > > Hello Fons, > > > > What about multithread env. Is there any assumption of the order the different > > threads are terminated. > > > > For example if "GUI" thread would be terminated and then another thread deletes > > some TCanvas then we may have ROOT crashed (after exit) > > > > I believe to deal with thread ROOT have to define: > > > > 1. a ROOT main thread (that should be terminated last) and that should instantiate other threads. > > 2. "base" thread class and a container of the "threads" to be able > > to get a control and terminated it in the proper order if needed. > > > > Valeri > > ----- > > Dr.Valeri Fine > > STAR/US Atlas E-mail: fine@bnl.gov > > Brookhaven National Lab Phone: +1 631 344 7806 > > Upton, NY 11973-5000 FAX: +1 631 344 4206 > > USA > > > > > > > > ----- Original Message ----- > > From: "Fons Rademakers" <Fons.Rademakers@cern.ch> > > To: "Masaharu Goto" <MXJ02154@nifty.ne.jp> > > Cc: "Rene Brun" <Rene.Brun@cern.ch>; <dbertini@lxg0402.gsi.de>; <cint@pcroot.cern.ch>; <roottalk@pcroot.cern.ch> > > Sent: Thursday, May 02, 2002 5:48 AM > > Subject: Re: RE:[CINT] [ROOT] Problems with CINT (fwd) > > > > > > > Hi Masa, > > > > > > exit() is now implemented in ROOT and it exits to the shell > > > propagating the value passed to exit() to the shell. > > > > > > -- Fons. > > > > > > > > > On Thu, 2002-05-02 at 11:29, Masaharu Goto wrote: > > > > Hello Denis, > > > > > > > > Thank you for reporting this problem. I'll fix the problem 1) > > > > in cint5.15.37. For 2), we need to discuss how exit() should > > > > behave in ROOT. > > > > > > > > Masaharu Goto > > > > > > > > > > > > > > > > >Date: Tue, 30 Apr 2002 23:37:51 +0200 (METDST) > > > > >From: Rene Brun <Rene.Brun@cern.ch> > > > > >To: cint@pcroot.cern.ch > > > > >Subject: [CINT] [ROOT] Problems with CINT (fwd) > > > > > > > > > > > > > > > > > > > >---------- Forwarded message ---------- > > > > >Date: Tue, 30 Apr 2002 20:08:57 +0200 (CEST) > > > > >From: Denis Bertini <dbertini@lxg0402.gsi.de> > > > > >To: roottalk@cern.ch > > > > >Subject: [ROOT] Problems with CINT > > > > > > > > > > > > > > > Hi Rooters, > > > > > > > > > > > > > > > 1) > > > > > > > > > > I am facing a problem to access the pointers in my > > > > > event structure via CINT. I think it link to the way > > > > > CINT interprets level of indirection. > > > > > Let me explain briefly: > > > > > I have th following class "Composite" > > > > > > > > > > class Composite: public Element > > > > > { > > > > > protected: > > > > > TObjArray *fEventElements; > > > > > // something ... > > > > > > > > > > // specific [] operator > > > > > Element& operator[](Int_t i) { > > > > > return *static_cast<TGo4EventElement*>((*fEventElements)[i]); > > > > > //something > > > > > }; > > > > > > > > > > Now with this overloaded [] operator i want to access my pointers, > > > > > using macros commands like: > > > > > { > > > > > Composite * event = new Composite(); > > > > > // .. initialize my structure composite > > > > > // access one element > > > > > Element* sub_event= &(*event)[i][j][k]; > > > > > } > > > > > > > > > > I tested this access with pure compiled C++ code and it works fine. > > > > > But, CINT can only access (using this syntax) one level of indirection. > > > > > I need to do explicitely the following trick: > > > > > > > > > > { > > > > > Composite * event = new Composite(); > > > > > // .. initialize my structure composite > > > > > // access one element > > > > > Element* sub_event= &(((*event)[i]) > > > > > .operator[](j)) > > > > > .operator[](k); > > > > > } > > > > > ... in order to get the correct result. But it is not very nice ! > > > > > > > > > > So what am i doing wrong there? > > > > > > > > > > 2) In the last version of CINT (ROOT 303.04 22 April 2002) the > > > > > command exit(0) hangs for ever. In root 303.02 it was working > > > > > correclty. > > > > > > > > > > any hints ? > > > > > thanks > > > > > Denis > > > > > > > > -- > > > 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 7679480 > > > > -- > 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 7679480 >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:52 MET