From 9f43cd9a294b7f089437496c071b7ee66206ebbc Mon Sep 17 00:00:00 2001 From: Fabian Paus <fabian.paus@kit.edu> Date: Thu, 21 May 2020 10:06:10 +0200 Subject: [PATCH] Use std instead of boost --- .../CyberGloveObserver/CyberGloveObserver.cpp | 4 +-- .../CyberGloveObserver/CyberGloveObserver.h | 5 ++- .../RobotState/RobotStateComponent.cpp | 8 ++--- .../RobotState/RobotStateComponent.h | 7 ++-- .../components/units/ForceTorqueObserver.cpp | 6 ++-- .../components/units/ForceTorqueObserver.h | 4 ++- .../components/units/GamepadUnitObserver.cpp | 2 +- .../components/units/GamepadUnitObserver.h | 3 +- .../units/GraspCandidateObserver.cpp | 34 +++++++++---------- .../components/units/GraspCandidateObserver.h | 6 ++-- .../components/units/HapticObserver.cpp | 4 +-- .../components/units/HapticObserver.h | 3 +- .../units/InertialMeasurementUnitObserver.cpp | 2 +- .../units/InertialMeasurementUnitObserver.h | 3 +- .../units/KinematicUnitObserver.cpp | 2 +- .../components/units/KinematicUnitObserver.h | 3 +- .../units/LaserScannerUnitObserver.cpp | 2 +- .../units/LaserScannerUnitObserver.h | 3 +- .../components/units/MetaWearIMUObserver.cpp | 2 +- .../components/units/MetaWearIMUObserver.h | 3 +- .../units/OptoForceUnitObserver.cpp | 4 +-- .../components/units/OptoForceUnitObserver.h | 3 +- .../OrientedTactileSensorUnitObserver.cpp | 2 +- .../units/OrientedTactileSensorUnitObserver.h | 3 +- .../core/remoterobot/RobotStateObserver.cpp | 6 ++-- .../core/remoterobot/RobotStateObserver.h | 2 +- 26 files changed, 70 insertions(+), 56 deletions(-) diff --git a/source/RobotAPI/components/CyberGloveObserver/CyberGloveObserver.cpp b/source/RobotAPI/components/CyberGloveObserver/CyberGloveObserver.cpp index a68eb49d8..96b0f863c 100644 --- a/source/RobotAPI/components/CyberGloveObserver/CyberGloveObserver.cpp +++ b/source/RobotAPI/components/CyberGloveObserver/CyberGloveObserver.cpp @@ -56,7 +56,7 @@ namespace armarx void CyberGloveObserver::reportGloveValues(const CyberGloveValues& gloveValues, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); IceUtil::Time now = TimeUtil::GetTime(); @@ -107,7 +107,7 @@ namespace armarx CyberGloveValues armarx::CyberGloveObserver::getLatestValues(const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); return latestValues; } } diff --git a/source/RobotAPI/components/CyberGloveObserver/CyberGloveObserver.h b/source/RobotAPI/components/CyberGloveObserver/CyberGloveObserver.h index 8eb91e465..45eb2f52a 100644 --- a/source/RobotAPI/components/CyberGloveObserver/CyberGloveObserver.h +++ b/source/RobotAPI/components/CyberGloveObserver/CyberGloveObserver.h @@ -23,13 +23,12 @@ #pragma once -//#include <ArmarXCore/core/Component.h> -//#include <RobotAPI/interface/units/CyberGloveInterface.h> #include <RobotAPI/interface/units/CyberGloveObserverInterface.h> #include <ArmarXCore/observers/Observer.h> #include <RobotAPI/interface/visualization/DebugDrawerInterface.h> #include <ArmarXCore/core/time/TimeUtil.h> +#include <mutex> namespace armarx { @@ -103,7 +102,7 @@ namespace armarx private: - Mutex dataMutex; + std::mutex dataMutex; CyberGloveValues latestValues; IceUtil::Time lastUpdate; diff --git a/source/RobotAPI/components/RobotState/RobotStateComponent.cpp b/source/RobotAPI/components/RobotState/RobotStateComponent.cpp index e3c8d00b9..53fb866aa 100644 --- a/source/RobotAPI/components/RobotState/RobotStateComponent.cpp +++ b/source/RobotAPI/components/RobotState/RobotStateComponent.cpp @@ -323,7 +323,7 @@ namespace armarx } { - boost::unique_lock<SharedMutex> lock(jointHistoryMutex); + std::unique_lock lock(jointHistoryMutex); jointHistory.emplace_hint(jointHistory.end(), time, jointAngles); if (jointHistory.size() > jointHistoryLength) @@ -512,7 +512,7 @@ namespace armarx IceUtil::Time duration; { IceUtil::Time start = IceUtil::Time::now(); - boost::unique_lock<SharedMutex> lock(poseHistoryMutex); + std::unique_lock lock(poseHistoryMutex); duration = IceUtil::Time::now() - start; poseHistory.emplace_hint(poseHistory.end(), @@ -553,7 +553,7 @@ namespace armarx auto RobotStateComponent::interpolateJoints(IceUtil::Time time) const -> std::optional<Timestamped<NameValueMap>> { - boost::shared_lock<SharedMutex> lock(jointHistoryMutex); + std::shared_lock lock(jointHistoryMutex); if (jointHistory.empty()) { ARMARX_WARNING << deactivateSpam(1) << "Joint history of robot state component is empty!"; @@ -628,7 +628,7 @@ namespace armarx auto RobotStateComponent::interpolatePose(IceUtil::Time time) const -> std::optional<Timestamped<FramedPosePtr>> { - boost::shared_lock<SharedMutex> lock(poseHistoryMutex); + std::shared_lock lock(poseHistoryMutex); if (poseHistory.empty()) { diff --git a/source/RobotAPI/components/RobotState/RobotStateComponent.h b/source/RobotAPI/components/RobotState/RobotStateComponent.h index 27751d203..2a1da853b 100644 --- a/source/RobotAPI/components/RobotState/RobotStateComponent.h +++ b/source/RobotAPI/components/RobotState/RobotStateComponent.h @@ -37,6 +37,9 @@ #include "SharedRobotServants.h" +#include <shared_mutex> +#include <mutex> + namespace armarx { @@ -216,11 +219,11 @@ namespace armarx std::string robotFile; std::string relativeRobotFile; - mutable SharedMutex jointHistoryMutex; + mutable std::shared_mutex jointHistoryMutex; std::map<IceUtil::Time, NameValueMap> jointHistory; size_t jointHistoryLength; - mutable SharedMutex poseHistoryMutex; + mutable std::shared_mutex poseHistoryMutex; std::map<IceUtil::Time, FramedPosePtr> poseHistory; size_t poseHistoryLength; diff --git a/source/RobotAPI/components/units/ForceTorqueObserver.cpp b/source/RobotAPI/components/units/ForceTorqueObserver.cpp index a365530d8..58a5eb9ed 100644 --- a/source/RobotAPI/components/units/ForceTorqueObserver.cpp +++ b/source/RobotAPI/components/units/ForceTorqueObserver.cpp @@ -123,7 +123,7 @@ namespace armarx auto channels = getAvailableChannels(false); auto batchPrx = debugDrawer->ice_batchOneway(); { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); std::set<std::string> frameAlreadyReported; for (auto& channel : channels) @@ -242,7 +242,7 @@ namespace armarx void ForceTorqueObserver::updateRobot() { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); RemoteRobot::synchronizeLocalClone(localRobot, robot); } @@ -304,7 +304,7 @@ namespace armarx void armarx::ForceTorqueObserver::reportSensorValues(const std::string& sensorNodeName, const FramedDirectionBasePtr& forces, const FramedDirectionBasePtr& torques, const Ice::Current& c) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); auto offerForceAndTorqueValue = [ = ](std::string const & sensorNodeName, std::string const & frame, std::string channelName, const FramedDirectionBasePtr & forces, const FramedDirectionBasePtr & torques) { diff --git a/source/RobotAPI/components/units/ForceTorqueObserver.h b/source/RobotAPI/components/units/ForceTorqueObserver.h index 24c031200..0f17d8a49 100644 --- a/source/RobotAPI/components/units/ForceTorqueObserver.h +++ b/source/RobotAPI/components/units/ForceTorqueObserver.h @@ -27,6 +27,8 @@ #include <ArmarXCore/observers/Observer.h> #include <RobotAPI/interface/visualization/DebugDrawerInterface.h> +#include <mutex> + namespace armarx { /** @@ -92,7 +94,7 @@ namespace armarx private: void updateRobot(); - armarx::Mutex dataMutex; + std::mutex dataMutex; std::string topicName; RobotStateComponentInterfacePrx robot; VirtualRobot::RobotPtr localRobot; diff --git a/source/RobotAPI/components/units/GamepadUnitObserver.cpp b/source/RobotAPI/components/units/GamepadUnitObserver.cpp index e6e522632..b1848c532 100644 --- a/source/RobotAPI/components/units/GamepadUnitObserver.cpp +++ b/source/RobotAPI/components/units/GamepadUnitObserver.cpp @@ -69,7 +69,7 @@ namespace armarx void GamepadUnitObserver::reportGamepadState(const std::string& device, const std::string& name, const GamepadData& data, const TimestampBasePtr& timestamp, const Ice::Current& c) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); TimestampVariantPtr timestampPtr = TimestampVariantPtr::dynamicCast(timestamp); diff --git a/source/RobotAPI/components/units/GamepadUnitObserver.h b/source/RobotAPI/components/units/GamepadUnitObserver.h index fcccf65fc..2f4d59c2a 100644 --- a/source/RobotAPI/components/units/GamepadUnitObserver.h +++ b/source/RobotAPI/components/units/GamepadUnitObserver.h @@ -29,6 +29,7 @@ #include <RobotAPI/interface/visualization/DebugDrawerInterface.h> #include <RobotAPI/libraries/core/Pose.h> +#include <mutex> namespace armarx { @@ -79,7 +80,7 @@ namespace armarx private: - Mutex dataMutex; + std::mutex dataMutex; DebugDrawerInterfacePrx debugDrawerPrx; diff --git a/source/RobotAPI/components/units/GraspCandidateObserver.cpp b/source/RobotAPI/components/units/GraspCandidateObserver.cpp index 3a0cac2ec..527216c96 100644 --- a/source/RobotAPI/components/units/GraspCandidateObserver.cpp +++ b/source/RobotAPI/components/units/GraspCandidateObserver.cpp @@ -122,21 +122,21 @@ void GraspCandidateObserver::handleProviderUpdate(const std::string& providerNam void GraspCandidateObserver::reportGraspCandidates(const std::string& providerName, const GraspCandidateSeq& candidates, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); this->candidates[providerName] = candidates; handleProviderUpdate(providerName, candidates.size()); } void GraspCandidateObserver::reportBimanualGraspCandidates(const std::string& providerName, const BimanualGraspCandidateSeq& candidates, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); this->bimanualCandidates[providerName] = candidates; handleProviderUpdate(providerName, candidates.size()); } void GraspCandidateObserver::reportProviderInfo(const std::string& providerName, const ProviderInfoPtr& info, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); providers[providerName] = info; if (updateCounters.count(providerName) == 0) { @@ -153,13 +153,13 @@ void GraspCandidateObserver::reportProviderInfo(const std::string& providerName, InfoMap GraspCandidateObserver::getAvailableProvidersWithInfo(const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); return providers; } StringSeq GraspCandidateObserver::getAvailableProviderNames(const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); return getAvailableProviderNames(); } @@ -167,14 +167,14 @@ StringSeq GraspCandidateObserver::getAvailableProviderNames(const Ice::Current&) ProviderInfoPtr GraspCandidateObserver::getProviderInfo(const std::string& providerName, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); checkHasProvider(providerName); return providers[providerName]; } bool GraspCandidateObserver::hasProvider(const std::string& providerName, const Ice::Current& c) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); return hasProvider(providerName); } @@ -182,7 +182,7 @@ bool GraspCandidateObserver::hasProvider(const std::string& providerName, const GraspCandidateSeq GraspCandidateObserver::getAllCandidates(const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); GraspCandidateSeq all; for (const std::pair<std::string, grasping::GraspCandidateSeq>& pair : candidates) { @@ -200,7 +200,7 @@ GraspCandidateSeq GraspCandidateObserver::getCandidatesByProvider(const std::str GraspCandidateSeq GraspCandidateObserver::getCandidatesByFilter(const CandidateFilterConditionPtr& filter, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); GraspCandidateSeq matching; for (const std::pair<std::string, grasping::GraspCandidateSeq>& pair : candidates) { @@ -217,20 +217,20 @@ GraspCandidateSeq GraspCandidateObserver::getCandidatesByFilter(const CandidateF Ice::Int GraspCandidateObserver::getUpdateCounterByProvider(const std::string& providerName, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); checkHasProvider(providerName); return updateCounters[providerName]; } IntMap GraspCandidateObserver::getAllUpdateCounters(const Ice::Current& providerName) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); return updateCounters; } bool GraspCandidateObserver::setProviderConfig(const std::string& providerName, const StringVariantBaseMap& config, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); if (providers.count(providerName) == 0) { return false; @@ -241,19 +241,19 @@ bool GraspCandidateObserver::setProviderConfig(const std::string& providerName, void GraspCandidateObserver::setSelectedCandidates(const GraspCandidateSeq& candidates, const Ice::Current&) { - ScopedLock lock(selectedCandidatesMutex); + std::unique_lock lock(selectedCandidatesMutex); selectedCandidates = candidates; } GraspCandidateSeq GraspCandidateObserver::getSelectedCandidates(const Ice::Current&) { - ScopedLock lock(selectedCandidatesMutex); + std::unique_lock lock(selectedCandidatesMutex); return selectedCandidates; } BimanualGraspCandidateSeq GraspCandidateObserver::getAllBimanualCandidates(const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); BimanualGraspCandidateSeq all; for (const std::pair<std::string, grasping::BimanualGraspCandidateSeq>& pair : bimanualCandidates) { @@ -264,13 +264,13 @@ BimanualGraspCandidateSeq GraspCandidateObserver::getAllBimanualCandidates(const void GraspCandidateObserver::setSelectedBimanualCandidates(const grasping::BimanualGraspCandidateSeq& candidates, const Ice::Current&) { - ScopedLock lock(selectedCandidatesMutex); + std::unique_lock lock(selectedCandidatesMutex); selectedBimanualCandidates = candidates; } BimanualGraspCandidateSeq GraspCandidateObserver::getSelectedBimanualCandidates(const Ice::Current&) { - ScopedLock lock(selectedCandidatesMutex); + std::unique_lock lock(selectedCandidatesMutex); return selectedBimanualCandidates; } diff --git a/source/RobotAPI/components/units/GraspCandidateObserver.h b/source/RobotAPI/components/units/GraspCandidateObserver.h index a481ec279..beb95c3a2 100644 --- a/source/RobotAPI/components/units/GraspCandidateObserver.h +++ b/source/RobotAPI/components/units/GraspCandidateObserver.h @@ -26,6 +26,8 @@ #include <ArmarXCore/observers/Observer.h> #include <RobotAPI/interface/observers/GraspCandidateObserverInterface.h> +#include <mutex> + namespace armarx { /** @@ -106,7 +108,7 @@ namespace armarx bool hasProvider(const std::string& providerName); void checkHasProvider(const std::string& providerName); grasping::StringSeq getAvailableProviderNames(); - Mutex dataMutex; + std::mutex dataMutex; std::map<std::string, grasping::GraspCandidateSeq> candidates; std::map<std::string, grasping::BimanualGraspCandidateSeq> bimanualCandidates; grasping::InfoMap providers; @@ -114,7 +116,7 @@ namespace armarx grasping::GraspCandidateProviderInterfacePrx configTopic; - Mutex selectedCandidatesMutex; + std::mutex selectedCandidatesMutex; grasping::GraspCandidateSeq selectedCandidates; grasping::BimanualGraspCandidateSeq selectedBimanualCandidates; diff --git a/source/RobotAPI/components/units/HapticObserver.cpp b/source/RobotAPI/components/units/HapticObserver.cpp index 759927bd8..0fe52df49 100644 --- a/source/RobotAPI/components/units/HapticObserver.cpp +++ b/source/RobotAPI/components/units/HapticObserver.cpp @@ -76,7 +76,7 @@ namespace armarx void HapticObserver::reportSensorValues(const std::string& device, const std::string& name, const armarx::MatrixFloatBasePtr& values, const armarx::TimestampBasePtr& timestamp, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); MatrixFloatPtr matrix = MatrixFloatPtr::dynamicCast(values); if (matrix->cols == 0) @@ -159,7 +159,7 @@ namespace armarx void HapticObserver::updateStatistics() { - /*ScopedLock lock(dataMutex); + /*std::unique_lock lock(dataMutex); //ARMARX_LOG << "updateStatistics"; long now = TimestampVariant::nowLong(); for (std::map<std::string, HapticSampleStatistics>::iterator it = statistics.begin(); it != statistics.end(); ++it) diff --git a/source/RobotAPI/components/units/HapticObserver.h b/source/RobotAPI/components/units/HapticObserver.h index 5e75db5b0..cac9a85c9 100644 --- a/source/RobotAPI/components/units/HapticObserver.h +++ b/source/RobotAPI/components/units/HapticObserver.h @@ -30,6 +30,7 @@ #include <ArmarXCore/util/variants/eigen3/Eigen3VariantObjectFactories.h> #include <ArmarXCore/core/services/tasks/PeriodicTask.h> +#include <mutex> namespace armarx { @@ -146,7 +147,7 @@ namespace armarx */ PropertyDefinitionsPtr createPropertyDefinitions() override; private: - armarx::Mutex dataMutex; + std::mutex dataMutex; std::string topicName; PeriodicTask<HapticObserver>::pointer_type statisticsTask; diff --git a/source/RobotAPI/components/units/InertialMeasurementUnitObserver.cpp b/source/RobotAPI/components/units/InertialMeasurementUnitObserver.cpp index 52e6f92ea..dc73454fe 100644 --- a/source/RobotAPI/components/units/InertialMeasurementUnitObserver.cpp +++ b/source/RobotAPI/components/units/InertialMeasurementUnitObserver.cpp @@ -71,7 +71,7 @@ namespace armarx const std::string& device, const std::string& name, const IMUData& values, const TimestampBasePtr& timestamp, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); TimestampVariantPtr timestampPtr = TimestampVariantPtr::dynamicCast(timestamp); diff --git a/source/RobotAPI/components/units/InertialMeasurementUnitObserver.h b/source/RobotAPI/components/units/InertialMeasurementUnitObserver.h index 4591228d9..728e2dc38 100644 --- a/source/RobotAPI/components/units/InertialMeasurementUnitObserver.h +++ b/source/RobotAPI/components/units/InertialMeasurementUnitObserver.h @@ -29,6 +29,7 @@ #include <RobotAPI/interface/visualization/DebugDrawerInterface.h> #include <RobotAPI/libraries/core/Pose.h> +#include <mutex> namespace armarx { @@ -82,7 +83,7 @@ namespace armarx private: - Mutex dataMutex; + std::mutex dataMutex; DebugDrawerInterfacePrx debugDrawerPrx; diff --git a/source/RobotAPI/components/units/KinematicUnitObserver.cpp b/source/RobotAPI/components/units/KinematicUnitObserver.cpp index 15712aa55..c3d52e47f 100644 --- a/source/RobotAPI/components/units/KinematicUnitObserver.cpp +++ b/source/RobotAPI/components/units/KinematicUnitObserver.cpp @@ -287,7 +287,7 @@ namespace armarx // ARMARX_INFO << deactivateSpam(10) << " timestamp is " << (IceUtil::Time::now() - IceUtil::Time::microSeconds(timestamp)).toMicroSecondsDouble() << " µs old"; bool newChannel; { - ScopedLock lock(initializedChannelsMutex); + std::unique_lock lock(initializedChannelsMutex); newChannel = initializedChannels.count(channelName) == 0; initializedChannels.insert(channelName); } diff --git a/source/RobotAPI/components/units/KinematicUnitObserver.h b/source/RobotAPI/components/units/KinematicUnitObserver.h index 8d7266006..5b21e89d0 100644 --- a/source/RobotAPI/components/units/KinematicUnitObserver.h +++ b/source/RobotAPI/components/units/KinematicUnitObserver.h @@ -32,6 +32,7 @@ #include <ArmarXCore/observers/Observer.h> #include <string> +#include <mutex> namespace armarx { @@ -154,7 +155,7 @@ namespace armarx protected: void nameValueMapToDataFields(const std::string& channelName, const NameValueMap& nameValueMap, Ice::Long timestamp, bool aValueChanged); std::set<std::string> initializedChannels; - Mutex initializedChannelsMutex; + std::mutex initializedChannelsMutex; private: std::string robotNodeSetName; std::set<std::string> robotNodes; diff --git a/source/RobotAPI/components/units/LaserScannerUnitObserver.cpp b/source/RobotAPI/components/units/LaserScannerUnitObserver.cpp index 0944336bf..04bd47d5a 100644 --- a/source/RobotAPI/components/units/LaserScannerUnitObserver.cpp +++ b/source/RobotAPI/components/units/LaserScannerUnitObserver.cpp @@ -64,7 +64,7 @@ namespace armarx void LaserScannerUnitObserver::reportSensorValues(const std::string& device, const std::string& name, const LaserScan& scan, const TimestampBasePtr& timestamp, const Ice::Current& c) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); if (!existsChannel(device)) { diff --git a/source/RobotAPI/components/units/LaserScannerUnitObserver.h b/source/RobotAPI/components/units/LaserScannerUnitObserver.h index 4b093eb49..05aa07cb9 100644 --- a/source/RobotAPI/components/units/LaserScannerUnitObserver.h +++ b/source/RobotAPI/components/units/LaserScannerUnitObserver.h @@ -29,6 +29,7 @@ #include <RobotAPI/interface/visualization/DebugDrawerInterface.h> #include <RobotAPI/libraries/core/Pose.h> +#include <mutex> namespace armarx { @@ -78,7 +79,7 @@ namespace armarx const TimestampBasePtr& timestamp, const Ice::Current& c) override; private: - Mutex dataMutex; + std::mutex dataMutex; }; } diff --git a/source/RobotAPI/components/units/MetaWearIMUObserver.cpp b/source/RobotAPI/components/units/MetaWearIMUObserver.cpp index b6885037d..959373308 100644 --- a/source/RobotAPI/components/units/MetaWearIMUObserver.cpp +++ b/source/RobotAPI/components/units/MetaWearIMUObserver.cpp @@ -64,7 +64,7 @@ namespace armarx void armarx::MetaWearIMUObserver::reportIMUValues(const std::string& name, const MetaWearIMUData& data, const TimestampBasePtr& timestamp, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); if (!existsChannel(name)) { diff --git a/source/RobotAPI/components/units/MetaWearIMUObserver.h b/source/RobotAPI/components/units/MetaWearIMUObserver.h index 6dba1f746..87eb6b49f 100644 --- a/source/RobotAPI/components/units/MetaWearIMUObserver.h +++ b/source/RobotAPI/components/units/MetaWearIMUObserver.h @@ -29,6 +29,7 @@ #include <RobotAPI/interface/visualization/DebugDrawerInterface.h> #include <RobotAPI/libraries/core/Pose.h> +#include <mutex> namespace armarx { @@ -74,7 +75,7 @@ namespace armarx private: - Mutex dataMutex; + std::mutex dataMutex; DebugDrawerInterfacePrx debugDrawerPrx; void offerVector3(const std::string& channelName, const std::string& dfName, const std::vector<float>& data); diff --git a/source/RobotAPI/components/units/OptoForceUnitObserver.cpp b/source/RobotAPI/components/units/OptoForceUnitObserver.cpp index ce09bacd4..f87a5b56e 100644 --- a/source/RobotAPI/components/units/OptoForceUnitObserver.cpp +++ b/source/RobotAPI/components/units/OptoForceUnitObserver.cpp @@ -65,7 +65,7 @@ namespace armarx void OptoForceUnitObserver::reportSensorValues(const std::string& device, const std::string& name, float fx, float fy, float fz, const TimestampBasePtr& timestamp, const Ice::Current& c) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); TimestampVariantPtr timestampPtr = TimestampVariantPtr::dynamicCast(timestamp); if (!existsChannel(name)) @@ -86,7 +86,7 @@ namespace armarx /*void OptoForceUnitObserver::reportSensorValues(const std::string& device, const std::string& name, const IMUData& values, const TimestampBasePtr& timestamp, const Ice::Current& c) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); TimestampVariantPtr timestampPtr = TimestampVariantPtr::dynamicCast(timestamp); diff --git a/source/RobotAPI/components/units/OptoForceUnitObserver.h b/source/RobotAPI/components/units/OptoForceUnitObserver.h index 3bdc63e1a..0d415cb2b 100644 --- a/source/RobotAPI/components/units/OptoForceUnitObserver.h +++ b/source/RobotAPI/components/units/OptoForceUnitObserver.h @@ -29,6 +29,7 @@ #include <RobotAPI/interface/visualization/DebugDrawerInterface.h> #include <RobotAPI/libraries/core/Pose.h> +#include <mutex> namespace armarx { @@ -81,7 +82,7 @@ namespace armarx private: - Mutex dataMutex; + std::mutex dataMutex; DebugDrawerInterfacePrx debugDrawerPrx; diff --git a/source/RobotAPI/components/units/OrientedTactileSensorUnitObserver.cpp b/source/RobotAPI/components/units/OrientedTactileSensorUnitObserver.cpp index 514a1767b..756408776 100644 --- a/source/RobotAPI/components/units/OrientedTactileSensorUnitObserver.cpp +++ b/source/RobotAPI/components/units/OrientedTactileSensorUnitObserver.cpp @@ -59,7 +59,7 @@ namespace armarx void OrientedTactileSensorUnitObserver::reportSensorValues(int id, float pressure, float qw, float qx, float qy, float qz, float pressureRate, float rotationRate, float accelerationRate, float accelx, float accely, float accelz, const TimestampBasePtr& timestamp, const Ice::Current&) { - ScopedLock lock(dataMutex); + std::unique_lock lock(dataMutex); TimestampVariantPtr timestampPtr = TimestampVariantPtr::dynamicCast(timestamp); std::stringstream ss; diff --git a/source/RobotAPI/components/units/OrientedTactileSensorUnitObserver.h b/source/RobotAPI/components/units/OrientedTactileSensorUnitObserver.h index 033f9cd08..70916163f 100644 --- a/source/RobotAPI/components/units/OrientedTactileSensorUnitObserver.h +++ b/source/RobotAPI/components/units/OrientedTactileSensorUnitObserver.h @@ -29,6 +29,7 @@ #include <RobotAPI/interface/visualization/DebugDrawerInterface.h> #include <RobotAPI/libraries/core/Pose.h> +#include <mutex> namespace armarx { @@ -80,7 +81,7 @@ namespace armarx private: - Mutex dataMutex; + std::mutex dataMutex; DebugDrawerInterfacePrx debugDrawerPrx; }; } diff --git a/source/RobotAPI/libraries/core/remoterobot/RobotStateObserver.cpp b/source/RobotAPI/libraries/core/remoterobot/RobotStateObserver.cpp index 9a2dbb98e..9fe87907b 100644 --- a/source/RobotAPI/libraries/core/remoterobot/RobotStateObserver.cpp +++ b/source/RobotAPI/libraries/core/remoterobot/RobotStateObserver.cpp @@ -92,7 +92,7 @@ void RobotStateObserver::updatePoses() return; } - ScopedRecursiveLock lock(dataMutex); + std::unique_lock lock(dataMutex); ReadLockPtr lock2 = robot->getReadLock(); FramedPoseBaseMap tcpPoses; std::string rootFrame = robot->getRootNode()->getName(); @@ -181,7 +181,7 @@ void RobotStateObserver::updateNodeVelocities(const NameValueMap& jointVel, long return; } - ScopedRecursiveLock lock(dataMutex); + std::unique_lock lock(dataMutex); if (!robot) { @@ -316,7 +316,7 @@ PropertyDefinitionsPtr RobotStateObserver::createPropertyDefinitions() void RobotStateObserver::setRobot(RobotPtr robot) { - ScopedRecursiveLock lock(dataMutex); + std::unique_lock lock(dataMutex); this->robot = robot; std::vector< VirtualRobot::RobotNodeSetPtr > robotNodes; diff --git a/source/RobotAPI/libraries/core/remoterobot/RobotStateObserver.h b/source/RobotAPI/libraries/core/remoterobot/RobotStateObserver.h index b604011ae..e3acfd611 100644 --- a/source/RobotAPI/libraries/core/remoterobot/RobotStateObserver.h +++ b/source/RobotAPI/libraries/core/remoterobot/RobotStateObserver.h @@ -94,7 +94,7 @@ namespace armarx RobotStateComponentInterfacePrx server; VirtualRobot::RobotPtr robot, velocityReportRobot; std::vector<std::pair<VirtualRobot::RobotNodePtr, std::string> > nodesToReport; - RecursiveMutex dataMutex; + std::recursive_mutex dataMutex; IceUtil::Time lastVelocityUpdate; // RobotStateObserverInterface interface -- GitLab