]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
minor bugfix: correctly close ESD files in destructor
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Jun 2008 06:07:16 +0000 (06:07 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Jun 2008 06:07:16 +0000 (06:07 +0000)
HLT/rec/AliHLTEsdManagerImplementation.cxx
HLT/rec/test/testAliHLTEsdManager.C

index a886ee407d9dc195d91502b7e33292734ad3c45f..936ecb15e914c31c30fc4a379473e3825da73472 100644 (file)
@@ -231,7 +231,10 @@ AliHLTEsdManagerImplementation::AliHLTEsdListEntry::~AliHLTEsdListEntry()
   if (fpTree) delete fpTree;
   fpTree=NULL;
 
-  if (fpFile) delete fpFile;
+  if (fpFile) {
+    fpFile->Close();
+    delete fpFile;
+  }
   fpFile=NULL;
 }
 
index 319327f8feed3d61a827f70b3d7be17066facd92..993e23be732a32216e1f08999ce67e2f94940d86 100644 (file)
@@ -161,13 +161,20 @@ int main(int /*argc*/, const char** /*argv*/)
     pManager->PadESDs(nofEvents);
   }
 
+  vector<TString> filenames;
   for (int type=0; types[type]!=kAliHLTVoidDataType; type++) {
     TString filename=pManager->GetFileNames(types[type]);
+    filenames.push_back(filename);
+  }
+  // delete the manager instance to make sure the files are closed
+  AliHLTEsdManager::Delete(pManager);
+  pManager=NULL;
+  for (int type=0; types[type]!=kAliHLTVoidDataType; type++) {
     if (iResult>=0) {
-      iResult=CheckFields(filename, dynamic_cast<TArrayI*>(randomFields[type]));
+      iResult=CheckFields(filenames[type], dynamic_cast<TArrayI*>(randomFields[type]));
     }
     TString shellcmd="rm -f ";
-    shellcmd+=filename;
+    shellcmd+=filenames[type];
     gSystem->Exec(shellcmd);    
   }
 
@@ -179,7 +186,6 @@ int main(int /*argc*/, const char** /*argv*/)
   }
 
   delete pMasterESD;
-  AliHLTEsdManager::Delete(pManager);
 
   return iResult;
 }