Don't bother taking OdeLock during OdeScene construction, since there can be no contention until the object is constructed.
parent
f10a824e47
commit
1d4cd76e8a
|
@ -279,7 +279,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used to lock the entire physics scene. Locked during the main part of Simulate()
|
/// Used to lock the entire physics scene. Locked during the main part of Simulate()
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Object OdeLock;
|
internal Object OdeLock = new Object();
|
||||||
|
|
||||||
public IMesher mesher;
|
public IMesher mesher;
|
||||||
|
|
||||||
|
@ -315,27 +315,24 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
m_log
|
m_log
|
||||||
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.ToString() + "." + sceneIdentifier);
|
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.ToString() + "." + sceneIdentifier);
|
||||||
|
|
||||||
OdeLock = new Object();
|
|
||||||
nearCallback = near;
|
nearCallback = near;
|
||||||
triCallback = TriCallback;
|
triCallback = TriCallback;
|
||||||
triArrayCallback = TriArrayCallback;
|
triArrayCallback = TriArrayCallback;
|
||||||
m_rayCastManager = new ODERayCastRequestManager(this);
|
m_rayCastManager = new ODERayCastRequestManager(this);
|
||||||
lock (OdeLock)
|
|
||||||
{
|
|
||||||
// Create the world and the first space
|
|
||||||
world = d.WorldCreate();
|
|
||||||
space = d.HashSpaceCreate(IntPtr.Zero);
|
|
||||||
|
|
||||||
contactgroup = d.JointGroupCreate(0);
|
// Create the world and the first space
|
||||||
//contactgroup
|
world = d.WorldCreate();
|
||||||
|
space = d.HashSpaceCreate(IntPtr.Zero);
|
||||||
|
|
||||||
d.WorldSetAutoDisableFlag(world, false);
|
contactgroup = d.JointGroupCreate(0);
|
||||||
#if USE_DRAWSTUFF
|
//contactgroup
|
||||||
|
|
||||||
Thread viewthread = new Thread(new ParameterizedThreadStart(startvisualization));
|
d.WorldSetAutoDisableFlag(world, false);
|
||||||
viewthread.Start();
|
#if USE_DRAWSTUFF
|
||||||
#endif
|
|
||||||
}
|
Thread viewthread = new Thread(new ParameterizedThreadStart(startvisualization));
|
||||||
|
viewthread.Start();
|
||||||
|
#endif
|
||||||
|
|
||||||
_watermap = new float[258 * 258];
|
_watermap = new float[258 * 258];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue