From 33946c901236d5aebde43a2da87f9063d4108dc7 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Wed, 23 Jan 2013 08:44:53 +0000 Subject: [PATCH] Kickr mutex for thread safety Ensure the member variables are only maintained in one thread at a time. --- src/Kickr.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Kickr.cpp b/src/Kickr.cpp index 2545a60c5..96e9367b2 100644 --- a/src/Kickr.cpp +++ b/src/Kickr.cpp @@ -100,7 +100,9 @@ double Kickr::getGradient() void Kickr::getRealtimeData(RealtimeData &rtData) { + pvars.lock(); rtData = rt; + pvars.unlock(); } int @@ -149,12 +151,14 @@ void Kickr::run() msleep(100); if (WFApi::getInstance()->hasData()) { + pvars.lock(); WFApi::getInstance()->getRealtimeData(&rt); // set speed from wheelRpm and configured wheelsize double x = rt.getWheelRpm(); if (devConf) rt.setSpeed(x * (devConf->wheelSize/1000) * 60 / 1000); else rt.setSpeed(x * 2.10 * 60 / 1000); + pvars.unlock(); } }