History

hold action works

Seth Alves committed 11 years ago

Commit eccf4eb1 parent 1c0c7f08 files · +66 −81Browse files

Showing the changes to libraries/physics/src/ObjectActionSpring.cpp (1 of 8 files). Show all

Unified · Split

libraries/physics/src/ObjectActionSpring.cpp+12−0
@@ -25,13 +25,23 @@ ObjectActionSpring::~ObjectActionSpring() { · 24 unmodified lines
2525 }
2626
2727 void ObjectActionSpring::updateActionWorker(btScalar deltaTimeStep) {
28+ if (!tryLockForRead()) {
29+ // don't risk hanging the thread running the physics simulation
30+ qDebug() << "ObjectActionSpring::updateActionWorker lock failed";
31+ return;
32+ }
33+
2834 void* physicsInfo = _ownerEntity->getPhysicsInfo();
2935 if (!physicsInfo) {
36+ unlock();
37+ qDebug() << "ObjectActionSpring::updateActionWorker no physicsInfo";
3038 return;
3139 }
3240 ObjectMotionState* motionState = static_cast<ObjectMotionState*>(physicsInfo);
3341 btRigidBody* rigidBody = motionState->getRigidBody();
3442 if (!rigidBody) {
43+ unlock();
44+ qDebug() << "ObjectActionSpring::updateActionWorker no rigidBody";
3545 return;
3646 }
3747
@@ -79,6 +89,8 @@ void ObjectActionSpring::updateActionWorker(btScalar deltaTimeStep) { · 41 unmodified lines
7989 rigidBody->setAngularVelocity(glmToBullet(glm::vec3(0.0f)));
8090 }
8191 }
92+
93+ unlock();
8294 }
8395
8496