hi, could somebody explain to the ignorants (myself) why the interpreted class timer (as in timer3.C below) does what I want (prints "Timeout ! " every 1 sec), while the compiled class timer (as in timer2.C) does not ? (root v3.0) Thanks Stefano ---------------------------------------------------------- Stefano Argiro', Ph.D. University of Turin, Experimental Physics Department and INFN via P. Giuria 1 10125 Torino Italy tel +39-011-670-7334 fax +39-011-669-1104 File timer3.C ----------------------------------------------------------------- // interpret it ! . // .L timer3.C // timer * t = new timer; // prints "Timeout !" every second class timer { private: TTimer *ftim; public: timer (){ ftim = new TTimer(1000); ftim->Connect("Timeout","timer", this, "TimeOut()"); // gSystem->AddTimer(ftim); // ftim->TurnOn(); ftim->Start(); } void TimeOut(){cout << "Timeout !"<<endl;} }; ------------------------------------------------------------------------ File timer2.C ------------------------------------------------------------------------ #include "TTimer.h" #include "TROOT.h" #include "TApplication.h" #include "TSystem.h" #include <iostream.h> /* Compile with gcc -I $ROOTSYS/include -L$ROOTSYS/lib -lCore \ -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript \ -lMatrix -lPhysics -lm -ldl -lpthread -rdynamic -lm -ldl -rdynamic -lThread\ -o prova timer2.C does nothing ! */ class timer { private: TTimer *ftim; public: timer (){ ftim = new TTimer(1000); ftim->Connect("Timeout","timer", this, "TimeOut()"); // gSystem->AddTimer(ftim); // ftim->TurnOn(); ftim->Start(); } void TimeOut(){cout << "Timeout !"<<endl;} }; int main (int argc, char ** argv ){ TROOT r("p","q"); TApplication *app = new TApplication("App", &argc, argv,NULL,0); cout << "creating and starting timer" <<endl; timer *t = new timer; gSystem->ProcessEvents(); app->Run(); // while (1); return 1; }
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:11 MET