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