ubode try remove a legacy lock, that is nasty

0.9.1.0-post-fixes
UbitUmarov 2019-01-21 01:43:35 +00:00
parent 3897774424
commit 81bb620d64
2 changed files with 6 additions and 4 deletions

View File

@ -2665,7 +2665,7 @@ Console.WriteLine(" JointCreateFixed");
} }
*/ */
SafeNativeMethods.AllocateODEDataForThread(0U); SafeNativeMethods.AllocateODEDataForThread(0);
_position.X = Util.Clip(_position.X, 0.5f, _parent_scene.WorldExtents.X - 0.5f); _position.X = Util.Clip(_position.X, 0.5f, _parent_scene.WorldExtents.X - 0.5f);
_position.Y = Util.Clip(_position.Y, 0.5f, _parent_scene.WorldExtents.Y - 0.5f); _position.Y = Util.Clip(_position.Y, 0.5f, _parent_scene.WorldExtents.Y - 0.5f);

View File

@ -124,7 +124,7 @@ namespace OpenSim.Region.PhysicsModule.ODE
/// /lib/x86_64-linux-gnu/libpthread.so.0(+0xfc60) [0x7f03c9849c60] /// /lib/x86_64-linux-gnu/libpthread.so.0(+0xfc60) [0x7f03c9849c60]
/// .../opensim/bin/libode-x86_64.so(_Z12dCollideCCTLP6dxGeomS0_iP12dContactGeomi+0x92) [0x7f03b44bcf82] /// .../opensim/bin/libode-x86_64.so(_Z12dCollideCCTLP6dxGeomS0_iP12dContactGeomi+0x92) [0x7f03b44bcf82]
/// </remarks> /// </remarks>
internal static Object UniversalColliderSyncObject = new Object(); // internal static Object UniversalColliderSyncObject = new Object();
internal static Object SimulationLock = new Object(); internal static Object SimulationLock = new Object();
/// <summary> /// <summary>
@ -498,6 +498,8 @@ namespace OpenSim.Region.PhysicsModule.ODE
public OdeScene(Scene pscene, IConfigSource psourceconfig, string pname, string pversion) public OdeScene(Scene pscene, IConfigSource psourceconfig, string pname, string pversion)
{ {
SafeNativeMethods.AllocateODEDataForThread(~0U);
m_config = psourceconfig; m_config = psourceconfig;
m_frameWorkScene = pscene; m_frameWorkScene = pscene;
@ -878,7 +880,7 @@ namespace OpenSim.Region.PhysicsModule.ODE
{ {
int count; int count;
lock (OdeScene.UniversalColliderSyncObject) // lock (OdeScene.UniversalColliderSyncObject)
{ {
// We do this inside the lock so that we don't count any delay in acquiring it // We do this inside the lock so that we don't count any delay in acquiring it
if (CollectStats) if (CollectStats)
@ -2867,7 +2869,7 @@ namespace OpenSim.Region.PhysicsModule.ODE
tempTick = tempTick2; tempTick = tempTick2;
} }
lock(SimulationLock) // lock(SimulationLock)
SafeNativeMethods.WorldQuickStep(world, ODE_STEPSIZE); SafeNativeMethods.WorldQuickStep(world, ODE_STEPSIZE);
if (CollectStats) if (CollectStats)