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.
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