From a78f7e2d66dbcb9b8e536ebf0ae75ba4de19065a Mon Sep 17 00:00:00 2001
From: Markus Grotz <markus.grotz@kit.edu>
Date: Thu, 1 Dec 2016 16:17:49 +0100
Subject: [PATCH] added mutex for ArmarXPlotter

---
 .../SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp  | 4 ++++
 .../SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h    | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp
index c0021acd3..313217468 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp
@@ -238,6 +238,8 @@ namespace armarx
 
     void ArmarXPlotter::toggleLogging(bool toggled)
     {
+        std::lock_guard<std::mutex> lock(mutex);
+
         if (toggled)
         {
             std::string filename = "datalog-" + IceUtil::Time::now().toDateTime() + ".csv";
@@ -266,6 +268,8 @@ namespace armarx
         }
         else
         {
+            logstream.flush();
+            ARMARX_INFO << "done writing log";
             logstream.close();
         }
     }
diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h
index 2bf57ee93..6a66a67ca 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.h
@@ -49,6 +49,7 @@
 
 #include <vector>
 #include <fstream>
+#include <mutex>
 
 //forward declarations
 class QwtPlotCurve;
@@ -209,6 +210,8 @@ namespace armarx
         std::map<std::string, QwtThermo*> bars;
         void clearBarList();
 
+        std::mutex mutex;
+
 
     };
 
-- 
GitLab