BulletSim: add a lock to try and catch a native shape creation/destruction

race condition.
user_profiles
Robert Adams 2013-05-13 13:05:27 -07:00
parent 15360cbb6b
commit c86e828dbf
1 changed files with 7 additions and 2 deletions

View File

@ -283,8 +283,13 @@ public class BSShapeNative : BSShape
public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim) public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim)
{ {
// Native shapes are not shared so we return a new shape. // Native shapes are not shared so we return a new shape.
return new BSShapeNative(CreatePhysicalNativeShape(pPhysicsScene, pPrim, BSShape ret = null;
physShapeInfo.shapeType, (FixedShapeKey)physShapeInfo.shapeKey) ); lock (physShapeInfo)
{
ret = new BSShapeNative(CreatePhysicalNativeShape(pPhysicsScene, pPrim,
physShapeInfo.shapeType, (FixedShapeKey)physShapeInfo.shapeKey));
}
return ret;
} }
// Make this reference to the physical shape go away since native shapes are not shared. // Make this reference to the physical shape go away since native shapes are not shared.