diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/ArmarXPlotter/ArmarXPlotter.cpp index c0021acd3478a5906ca01142a198dd8238db81a6..31321746833c29ae7e6061b8e5372ce450356d84 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 2bf57ee936be87ae041fb84f225ab512077eaf6f..6a66a67ca50e903345cdeb5429a27bfb2e1c9a80 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; + };