]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveHLT/AliEveEventBuffer.cxx
Create only one instance of the buffer thread
[u/mrichter/AliRoot.git] / EVE / EveHLT / AliEveEventBuffer.cxx
index 755c7651d8b7e53a9019f7e4f2a7eafbcebfd047..61afb25dbadb7971a9078929580229001983051d 100644 (file)
@@ -23,7 +23,8 @@ AliEveEventBuffer::AliEveEventBuffer() :
   fBIndex(),
   fTimer(NULL),
   fEventId(),
-  fBufferMonStarted(kFALSE)
+  fBufferMonStarted(kFALSE),
+  fThread(NULL)
  {
   // see header file for class documentation
   fEventBuffer = new TObjArray(fBufferSize, 0);
@@ -40,6 +41,9 @@ AliEveEventBuffer::AliEveEventBuffer() :
   for(Int_t id = 0; id < fBufferSize; id++ ) {
     fEventId[id] = -2;
   }
+
+  fThread = new TThread(AliEveEventBuffer::BufferThread, (void*) this);
+
   
 
 }
@@ -64,13 +68,14 @@ AliEveEventBuffer::~AliEveEventBuffer() {
 
 ///___________________________________________________________________________
 void AliEveEventBuffer::CreateBufferThread() {
+  cout << "Threadexists: " << fThread->Exists() << endl;
   if(GetBusy()) {
     cout << "Buffer is busy, no thread created"<< endl;
+    
   } else {
     if ( (CalculateDifference(fBIndex[kTop],fBIndex[kLast]) < fPreBuffer) ) {
       SetBusy(kTRUE);
-      cout << "CreateBufferThread()"<<endl;
-      TThread * fThread = new TThread(AliEveEventBuffer::BufferThread, (void*) this);
+      cout << "StartBufferThread()"<<endl;
       fThread->Run();
       cout << "Started BufferThread"<<endl;
     } else { 
@@ -78,6 +83,7 @@ void AliEveEventBuffer::CreateBufferThread() {
     }
   }
 }
+
 ///___________________________________________________________________________
 void * AliEveEventBuffer::BufferThread(void * buffer) {
   cout <<"BufferThread : " <<endl;