Fix for #88606 Request to commit/port mods. for AliRawReaderDateOnline
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 Nov 2011 17:27:48 +0000 (17:27 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 Nov 2011 17:27:48 +0000 (17:27 +0000)
RAW/AliRawReaderDateOnline.cxx
RAW/AliRawReaderDateOnline.h

index 531da78..c0eaf53 100644 (file)
@@ -38,6 +38,8 @@
 
 ClassImp(AliRawReaderDateOnline)
 
+Bool_t AliRawReaderDateOnline::fgNoSleep = kTRUE;
+
 AliRawReaderDateOnline::AliRawReaderDateOnline(
 #ifdef ALI_DATE
                                     const char* filename
@@ -142,6 +144,7 @@ Bool_t AliRawReaderDateOnline::NextEvent()
     
     /* retry if got no event */
     if (fEvent==NULL) {
+      if (fgNoSleep) gSystem->ProcessEvents();
       continue;
     }
     
@@ -158,6 +161,7 @@ Bool_t AliRawReaderDateOnline::NextEvent()
     if (!IsEventSelected()) {
       free(fEvent);
       fEvent = NULL;
+      if (fgNoSleep) gSystem->ProcessEvents();
       continue;
     }
 
index 6ce1594..6904c51 100644 (file)
@@ -40,7 +40,9 @@ class AliRawReaderDateOnline: public AliRawReaderDate {
     // NextEvent() returns fFALSE and the
     // processing of raw data stops
     virtual void     Stop();
-
+    static Bool_t GetNoSleep()               {return fgNoSleep;}
+    static void   SetNoSleep(Bool_t v=kTRUE) {fgNoSleep = v;}
+    //
   protected:
     class AliRawReaderDateIntHandler : public TSignalHandler {
     public:
@@ -59,14 +61,13 @@ class AliRawReaderDateOnline: public AliRawReaderDate {
     };
 
     virtual void     SelectEvents(Int_t type, ULong64_t triggerMask = 0, const char *triggerExpr = NULL);
-
   private:
     AliRawReaderDateOnline(const AliRawReaderDateOnline& rawReader);
     AliRawReaderDateOnline& operator = (const AliRawReaderDateOnline& rawReader);
 
     const Char_t**   fTable;// custom monitoring table
     Bool_t           fStop; // raw-reader signaled to stop
-
+    static Bool_t    fgNoSleep; // do we freez the system while looping in event waiting? 
     ClassDef(AliRawReaderDateOnline, 0) // class for reading DATE raw data from shared memory
 };