Re: [ROOT] Another bug in TTimer on windows

From: Anton Fokin (anton.fokin@smartquant.com)
Date: Tue Mar 19 2002 - 09:08:58 MET


Valery,

if after six years of development a single shot timer doesn't work, I have
no clue what to do. Perhaps it is better I shut up too.

/Anton

http://www.smartquant.com


----- Original Message -----
From: "Valeri Fine" <fine@bnl.gov>
To: "Anton Fokin" <anton.fokin@smartquant.com>; "roottalk"
<roottalk@pcroot.cern.ch>
Sent: Monday, March 18, 2002 9:56 PM
Subject: Re: [ROOT] Another bug in TTimer on windows


> ----- Original Message -----
> From: "Anton Fokin" <anton.fokin@smartquant.com>
> To: "Valeri Fine" <fine@bnl.gov>; "roottalk" <roottalk@pcroot.cern.ch>
> Sent: Monday, March 18, 2002 1:06 PM
> Subject: Re: [ROOT] Another bug in TTimer on windows
>
>
> > Valery,
> >
> > >   Anton,  why each time one has to ask you one and the same thing
> > >   to be provided ?
> > >
> > >   - A simple test or example to reproduce the problem.
> > >   - If you have found a problem reason and fix it  then the correction
> > >     and test are appreciated.
> > >
> > >    Can you memorize that ;-)
> >
> >
> > NOT AT ALL AND I AM NOT GOING TO SIMPLY BACAUSE THIS IS NOT MY PROJECT!
> > (check out ROOT copyrights)
> >
> > can you memorize this :)
> >
> > PS. Although if I can find a bug quickly, etc. I have no probs to
> > help/report.
> >
> > I have asked a number of times : If you DO NOT SUPPORT ROOT ON WINDOWS
tell
> > me and others please, because people rely (read: depend) on you.
>
> I believe you know the answer and I think ROOT Web site does provide a
clear answer.
> "(check out ROOT copyrights)"
>
> What you are saying I must shut up and do not communicate ROOTTALK for
free ?
>
> Ok, I agree I will not reply your questions for free anymore.
>
>                                Good luck, Valeri
>
>
>
> >
> > We are talking about BACKGROUNDS of ROOT framework. A single shot timer.
XXI
> > century. Whatta f@#$.
> >
> > Cheers,
> > Anton
> >
> > http://www.smartquant.com
> >
> >
> > ----- Original Message -----
> > From: "Valeri Fine" <fine@bnl.gov>
> > To: "Anton Fokin" <anton.fokin@smartquant.com>; "roottalk"
> > <roottalk@pcroot.cern.ch>
> > Sent: Monday, March 18, 2002 6:41 PM
> > Subject: Re: [ROOT] Another bug in TTimer on windows
> >
> >
> > >
> > > ----- Original Message -----
> > > From: "Anton Fokin" <anton.fokin@smartquant.com>
> > > To: "roottalk" <roottalk@pcroot.cern.ch>
> > > Sent: Monday, March 18, 2002 6:31 AM
> > > Subject: [ROOT] Another bug in TTimer on windows
> > >
> > >
> > > > Hello,
> > > >
> > > > single shot async mode doesn't work under windows (dont know about
> > Linux)
> > > >
> > > > This below doesn't trigger timer (HandleTimer) at all
> > > >
> > > >   fTimer = new TTimer(this, 1000, kFALSE);
> > > >   fTimer->Start(1000, kTRUE);
> > > >
> > > > Although this
> > > >
> > > >   fTimer = new TTimer(this, 1000, kFALSE);
> > > >   fTimer->Start(1000);
> > > >
> > > > does (constantly).
> > >
> > >   Anton,  why each time one has to ask you one and the same thing
> > >   to be provided ?
> > >
> > >   - A simple test or example to reproduce the problem.
> > >   - If you have found a problem reason and fix it  then the correction
> > >     and test are appreciated.
> > >
> > >    Can you memorize that ;-)
> > >
> > > Coming back to the problem you reported:
> > >
> > > I did not know about Start method.
> > > I've looked it up. From the first glance it is NOT correct.
> > > http://root.cern.ch/root/html/src/TTimer.cxx.html#TTimer:Start
> > >
> > >  void TTimer::Start(Int_t milliSec, Bool_t singleShot)
> > > {
> > >    if (milliSec >= 0)
> > >       SetTime(milliSec);
> > >    Reset();
> > >    TurnOn();
> > >    if (singleShot)
> > >       Connect(this, "Timeout()", "TTimer", this, "TurnOff()");
> > >    else
> > >       Disconnect(this, "Timeout()", this, "TurnOff()");
> > > }
> > >
> > >   My guess the methods Connect/Disconnect may have been called too
late.
> > >   To avoid the problem I would recommend to change the order of the
> > methods above, namely:
> > >
> > >  void TTimer::Start(Int_t milliSec, Bool_t singleShot)
> > > {
> > >    if (milliSec >= 0)
> > >       SetTime(milliSec);
> > >    Reset();
> > >  //    TurnOn();  // move this statement
> > >    if (singleShot)
> > >       Connect(this, "Timeout()", "TTimer", this, "TurnOff()");
> > >    else
> > >       Disconnect(this, "Timeout()", this, "TurnOff()");
> > >    TurnOn(); // New position of the method
> > > }
> > >
> > > I mean FIRST the signal/slot connection must be established and THEN
the
> > timer
> > > should be fired but ... TurnOn
> > > http://root.cern.ch/root/html/src/TTimer.cxx.html#TTimer:TurnOn
> > > calls
> > >
> > >    Disconnect(this, "Timeout()", this, "TurnOff()");
> > >
> > > ??? That is NOT what we want for the single shot case.
> > >
> > > I wonder if one can provide the timeout that is long enough to get
> > Signal/Slot
> > > connection made established then everything should (?)  work properly
with
> > no change.
> > >
> > >   Can one check this ?
> > >                Thank you
> > >                           Best regards, Valeri
> > >
> > > >
> > > > /Anton
> > > >
> > > > http://www.smartquant.com
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
>
>
>



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:46 MET