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>
|
||||
/// Used to lock the entire physics scene. Locked during the main part of Simulate()
|
||||
/// </summary>
|
||||
public Object OdeLock;
|
||||
internal Object OdeLock = new Object();
|
||||
|
||||
public IMesher mesher;
|
||||
|
||||
|
@ -315,27 +315,24 @@ namespace OpenSim.Region.Physics.OdePlugin
|
|||
m_log
|
||||
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.ToString() + "." + sceneIdentifier);
|
||||
|
||||
OdeLock = new Object();
|
||||
nearCallback = near;
|
||||
triCallback = TriCallback;
|
||||
triArrayCallback = TriArrayCallback;
|
||||
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);
|
||||
//contactgroup
|
||||
// Create the world and the first space
|
||||
world = d.WorldCreate();
|
||||
space = d.HashSpaceCreate(IntPtr.Zero);
|
||||
|
||||
d.WorldSetAutoDisableFlag(world, false);
|
||||
#if USE_DRAWSTUFF
|
||||
|
||||
Thread viewthread = new Thread(new ParameterizedThreadStart(startvisualization));
|
||||
viewthread.Start();
|
||||
#endif
|
||||
}
|
||||
contactgroup = d.JointGroupCreate(0);
|
||||
//contactgroup
|
||||
|
||||
d.WorldSetAutoDisableFlag(world, false);
|
||||
#if USE_DRAWSTUFF
|
||||
|
||||
Thread viewthread = new Thread(new ParameterizedThreadStart(startvisualization));
|
||||
viewthread.Start();
|
||||
#endif
|
||||
|
||||
_watermap = new float[258 * 258];
|
||||
|
||||
|
|
Loading…
Reference in New Issue