]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
PR: check return on sem_wait: interruptible by signal
authorprascle <prascle>
Fri, 9 Dec 2005 18:26:01 +0000 (18:26 +0000)
committerprascle <prascle>
Fri, 9 Dec 2005 18:26:01 +0000 (18:26 +0000)
src/SALOMELocalTrace/LocalTraceBufferPool.cxx

index 4523a897dfc5d02d1de9d62ef68bcba57b43d697..c7d321ec6597dbb7093f1f8e1547a5fcf7efdcfc 100644 (file)
@@ -169,7 +169,12 @@ int LocalTraceBufferPool::insert(int traceType, const char* msg)
 
   // wait until there is a free buffer in the pool
 
-  int ret = sem_wait(&_freeBufferSemaphore);
+  int ret = -1;
+  while (ret)
+    {
+      ret = sem_wait(&_freeBufferSemaphore);
+      if (ret) perror(" LocalTraceBufferPool::insert, sem_wait");
+    }
 
   // get the next free buffer available (mutex protected) 
 
@@ -209,7 +214,12 @@ int LocalTraceBufferPool::retrieve(LocalTrace_TraceInfo& aTrace)
 
   // wait until there is a buffer in the pool, with a message to print
 
-  int ret = sem_wait(&_fullBufferSemaphore);
+  int ret = -1;
+  while (ret)
+    {
+      ret = sem_wait(&_fullBufferSemaphore);
+      if (ret) perror(" LocalTraceBufferPool::retrieve, sem_wait");
+    }
 
   // get the next buffer to print