From e571cb7ca44384121fc48e7868a411198ec770a3 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Thu, 15 Oct 2015 10:22:25 -0700 Subject: [PATCH] more lock adjustments --- libraries/physics/src/ObjectActionOffset.cpp | 35 ++++++++--------- libraries/physics/src/ObjectActionSpring.cpp | 40 ++++++++++---------- 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/libraries/physics/src/ObjectActionOffset.cpp b/libraries/physics/src/ObjectActionOffset.cpp index 4930d44f3c..d01178dcc3 100644 --- a/libraries/physics/src/ObjectActionOffset.cpp +++ b/libraries/physics/src/ObjectActionOffset.cpp @@ -151,17 +151,18 @@ QVariantMap ObjectActionOffset::getArguments() { QByteArray ObjectActionOffset::serialize() const { QByteArray ba; QDataStream dataStream(&ba, QIODevice::WriteOnly); - dataStream << getType(); + dataStream << ACTION_TYPE_OFFSET; dataStream << getID(); dataStream << ObjectActionOffset::offsetVersion; - dataStream << _pointToOffsetFrom; - dataStream << _linearDistance; - dataStream << _linearTimeScale; - dataStream << _positionalTargetSet; - - dataStream << _expires; - dataStream << _tag; + withReadLock([&] { + dataStream << _pointToOffsetFrom; + dataStream << _linearDistance; + dataStream << _linearTimeScale; + dataStream << _positionalTargetSet; + dataStream << _expires; + dataStream << _tag; + }); return ba; } @@ -183,13 +184,13 @@ void ObjectActionOffset::deserialize(QByteArray serializedArguments) { return; } - dataStream >> _pointToOffsetFrom; - dataStream >> _linearDistance; - dataStream >> _linearTimeScale; - dataStream >> _positionalTargetSet; - - dataStream >> _expires; - dataStream >> _tag; - - _active = true; + withWriteLock([&] { + dataStream >> _pointToOffsetFrom; + dataStream >> _linearDistance; + dataStream >> _linearTimeScale; + dataStream >> _positionalTargetSet; + dataStream >> _expires; + dataStream >> _tag; + _active = true; + }); } diff --git a/libraries/physics/src/ObjectActionSpring.cpp b/libraries/physics/src/ObjectActionSpring.cpp index 242849db6f..38b4b71d26 100644 --- a/libraries/physics/src/ObjectActionSpring.cpp +++ b/libraries/physics/src/ObjectActionSpring.cpp @@ -191,16 +191,16 @@ QByteArray ObjectActionSpring::serialize() const { dataStream << getID(); dataStream << ObjectActionSpring::springVersion; - dataStream << _positionalTarget; - dataStream << _linearTimeScale; - dataStream << _positionalTargetSet; - - dataStream << _rotationalTarget; - dataStream << _angularTimeScale; - dataStream << _rotationalTargetSet; - - dataStream << _expires; - dataStream << _tag; + withReadLock([&] { + dataStream << _positionalTarget; + dataStream << _linearTimeScale; + dataStream << _positionalTargetSet; + dataStream << _rotationalTarget; + dataStream << _angularTimeScale; + dataStream << _rotationalTargetSet; + dataStream << _expires; + dataStream << _tag; + }); return serializedActionArguments; } @@ -222,16 +222,18 @@ void ObjectActionSpring::deserialize(QByteArray serializedArguments) { return; } - dataStream >> _positionalTarget; - dataStream >> _linearTimeScale; - dataStream >> _positionalTargetSet; + withWriteLock([&] { + dataStream >> _positionalTarget; + dataStream >> _linearTimeScale; + dataStream >> _positionalTargetSet; - dataStream >> _rotationalTarget; - dataStream >> _angularTimeScale; - dataStream >> _rotationalTargetSet; + dataStream >> _rotationalTarget; + dataStream >> _angularTimeScale; + dataStream >> _rotationalTargetSet; - dataStream >> _expires; - dataStream >> _tag; + dataStream >> _expires; + dataStream >> _tag; - _active = true; + _active = true; + }); }