From 4b5597d6c24a9619485b386af77a56e9836e9c74 Mon Sep 17 00:00:00 2001
From: Olivier Stasse <ostasse@laas.fr>
Date: Mon, 15 Apr 2019 22:30:25 +0200
Subject: [PATCH] [debug] Logger - Fix race condition Race condition if the
 value reach zero, then the time sample has to be reset to timeSamplePeriod.

---
 src/debug/logger.cpp         | 5 ++++-
 tests/debug-logger-winit.cpp | 3 ++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/debug/logger.cpp b/src/debug/logger.cpp
index 41b809d..b4c2fc3 100644
--- a/src/debug/logger.cpp
+++ b/src/debug/logger.cpp
@@ -78,7 +78,10 @@ namespace dynamicgraph
         if(it->second>0.0)
 	  {
 	    it->second -= m_timeSample;
-	    return;
+	    if (it->second<=0.0)
+	      it->second = m_streamPrintPeriod;
+	    else
+	      return;
 	  }
         else  // otherwise reset counter and print
           it->second = m_streamPrintPeriod;
diff --git a/tests/debug-logger-winit.cpp b/tests/debug-logger-winit.cpp
index a990752..d043b53 100644
--- a/tests/debug-logger-winit.cpp
+++ b/tests/debug-logger-winit.cpp
@@ -7,12 +7,13 @@
  */
 #include <sstream>
 #include <iostream>
+
+#define ENABLE_RT_LOG
 #include <dynamic-graph/entity.h>
 #include <dynamic-graph/exception-factory.h>
 #include "dynamic-graph/factory.h"
 #include "dynamic-graph/pool.h"
 
-#define ENABLE_RT_LOG
 #include <dynamic-graph/real-time-logger.h>
 #include <dynamic-graph/logger.h>
 
-- 
GitLab