Salome HOME
Fix compilation pb.
[modules/kernel.git] / src / SALOMELocalTrace / FileTraceCollector.cxx
index ba880f6aeeb31fed3a7676ef0fad2b9ee506e92d..f76e18ef6dd64f277c0e2dfbbd8c798e583b576c 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -31,6 +31,7 @@
 
 using namespace std;
 
+//#define _DEVDEBUG_
 #include "FileTraceCollector.hxx"
 
 // Class attributes initialisation, for class method FileTraceCollector::run
@@ -63,7 +64,7 @@ BaseTraceCollector* FileTraceCollector::instance(const char *fileName)
 
          sem_init(&_sem,0,0); // to wait until run thread is initialized
          pthread_t traceThread;
-         int bid;
+         int bid = 0;
          int re2 = pthread_create(&traceThread, NULL,
                                   FileTraceCollector::run, (void *)bid);
          sem_wait(&_sem);
@@ -88,6 +89,7 @@ BaseTraceCollector* FileTraceCollector::instance(const char *fileName)
 
 void* FileTraceCollector::run(void *bid)
 {
+  //DEVTRACE("init run");
   _threadId = new pthread_t;
   *_threadId = pthread_self();
   sem_post(&_sem); // unlock instance
@@ -100,6 +102,7 @@ void* FileTraceCollector::run(void *bid)
 
   ofstream traceFile;
   const char *theFileName = _fileName.c_str();
+  DEVTRACE("try to open trace file "<< theFileName);
   traceFile.open(theFileName, ios::out | ios::app);
   if (!traceFile)
     {
@@ -109,7 +112,7 @@ void* FileTraceCollector::run(void *bid)
 
   // --- Loop until there is no more buffer to print,
   //     and no ask for end from destructor.
-
+  DEVTRACE("Begin loop");
   while ((!_threadToClose) || myTraceBuffer->toCollect() )
     {
       if (_threadToClose)
@@ -183,8 +186,8 @@ FileTraceCollector:: ~FileTraceCollector()
          _threadToClose = 0;
        }
       _singleton = 0;
-      ret = pthread_mutex_unlock(&_singletonMutex); // release lock
     }
+  ret = pthread_mutex_unlock(&_singletonMutex); // release lock
 }
 
 // ============================================================================