> 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