]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
PR: debug some synchro problems on UnitTests
authorprascle <prascle>
Wed, 2 Nov 2005 11:10:41 +0000 (11:10 +0000)
committerprascle <prascle>
Wed, 2 Nov 2005 11:10:41 +0000 (11:10 +0000)
src/SALOMELocalTrace/FileTraceCollector.cxx
src/SALOMELocalTrace/LocalTraceBufferPool.cxx
src/SALOMELocalTrace/LocalTraceCollector.cxx
src/SALOMETraceCollector/SALOMETraceCollector.cxx

index ba880f6aeeb31fed3a7676ef0fad2b9ee506e92d..61ac812273eb35766164fbaea9b9641d8d5cdb2b 100644 (file)
@@ -31,6 +31,7 @@
 
 using namespace std;
 
+//#define _DEVDEBUG_
 #include "FileTraceCollector.hxx"
 
 // Class attributes initialisation, for class method FileTraceCollector::run
@@ -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
 }
 
 // ============================================================================
index 2613d8714c805f48b399a9cdb053e881f7fcc16d..8fd4c5bf2d3bfea754094b37bdf59eddc5e72352 100644 (file)
@@ -33,6 +33,7 @@
 #else
 #endif
 
+//#define _DEVDEBUG_
 #include "LocalTraceBufferPool.hxx"
 #include "BaseTraceCollector.hxx"
 #include "LocalTraceCollector.hxx"
@@ -82,10 +83,12 @@ LocalTraceBufferPool* LocalTraceBufferPool::instance()
       ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone
       if (_singleton == 0)                     // another thread may have got
        {                                      // the lock after the first test
-        LocalTraceBufferPool* myInstance = new LocalTraceBufferPool(); 
+         DEVTRACE("New buffer pool");
+         LocalTraceBufferPool* myInstance = new LocalTraceBufferPool(); 
 
          DESTRUCTOR_OF<LocalTraceBufferPool> *ptrDestroy =
            new DESTRUCTOR_OF<LocalTraceBufferPool> (*myInstance);
+         _singleton = myInstance;
 
          // --- start a trace Collector
 
@@ -140,7 +143,7 @@ LocalTraceBufferPool* LocalTraceBufferPool::instance()
                  exit(1);        // in case assert is deactivated
                }             
            }
-         _singleton = myInstance;
+         DEVTRACE("New buffer pool: end");
        }
       ret = pthread_mutex_unlock(&_singletonMutex); // release lock
     }
@@ -295,8 +298,8 @@ LocalTraceBufferPool::~LocalTraceBufferPool()
       ret=pthread_mutex_destroy(&_incrementMutex);
       DEVTRACE("LocalTraceBufferPool::~LocalTraceBufferPool()-end");
       _singleton = 0;
-      ret = pthread_mutex_unlock(&_singletonMutex); // release lock
     }
+  ret = pthread_mutex_unlock(&_singletonMutex); // release lock
 }
 
 // ============================================================================
index 559216ac9ff8213877f7ff489fd36d10919e4678..edaa246904ae72e6e056d18605f24fc7e7c7391b 100644 (file)
@@ -153,8 +153,8 @@ LocalTraceCollector:: ~LocalTraceCollector()
          _threadToClose = 0;
        }
       _singleton = 0;
-      ret = pthread_mutex_unlock(&_singletonMutex); // release lock
     }
+  ret = pthread_mutex_unlock(&_singletonMutex); // release lock
 }
 
 // ============================================================================
index 6fd76763f1a541152da63b8070ce5d3983bee295..361595a66310fabdd86f4e76dfccf43815d23272 100644 (file)
@@ -192,8 +192,8 @@ SALOMETraceCollector:: ~SALOMETraceCollector()
          _threadToClose = 0;
        }
       _singleton = 0;
-      ret = pthread_mutex_unlock(&_singletonMutex); // release lock
     }
+  ret = pthread_mutex_unlock(&_singletonMutex); // release lock
 }
 
 // ============================================================================