diff options
author | Teravus Ovares | 2008-10-16 12:57:29 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-10-16 12:57:29 +0000 |
commit | 68d85497adc328f8fda2fef52fb51f2c9bc7ece0 (patch) | |
tree | 58d10a1c83c71717f5073754aea04d15b8ea2280 | |
parent | Check for terrain size=256x256 on "terrain load <file>". This fixes (diff) | |
download | opensim-SC_OLD-68d85497adc328f8fda2fef52fb51f2c9bc7ece0.zip opensim-SC_OLD-68d85497adc328f8fda2fef52fb51f2c9bc7ece0.tar.gz opensim-SC_OLD-68d85497adc328f8fda2fef52fb51f2c9bc7ece0.tar.bz2 opensim-SC_OLD-68d85497adc328f8fda2fef52fb51f2c9bc7ece0.tar.xz |
* Releases the inter-region thread synchronization between physics in ODE on the same instance.
* If you are hosting many regions on a single instance, you will probably notice a decrease in region startup time and maybe a slight increase in performance.
* Single regions won't notice anything different
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 3 |
3 files changed, 7 insertions, 6 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index 2561fa5..9ad9318 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | |||
@@ -147,7 +147,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
147 | } | 147 | } |
148 | CAPSULE_LENGTH = (size.Z - ((size.Z * height_fudge_factor))); | 148 | CAPSULE_LENGTH = (size.Z - ((size.Z * height_fudge_factor))); |
149 | 149 | ||
150 | lock (OdeScene.OdeLock) | 150 | lock (_parent_scene.OdeLock) |
151 | { | 151 | { |
152 | AvatarGeomAndBodyCreation(pos.X, pos.Y, pos.Z, m_tensor); | 152 | AvatarGeomAndBodyCreation(pos.X, pos.Y, pos.Z, m_tensor); |
153 | } | 153 | } |
@@ -362,7 +362,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
362 | get { return _position; } | 362 | get { return _position; } |
363 | set | 363 | set |
364 | { | 364 | { |
365 | lock (OdeScene.OdeLock) | 365 | lock (_parent_scene.OdeLock) |
366 | { | 366 | { |
367 | d.BodySetPosition(Body, value.X, value.Y, value.Z); | 367 | d.BodySetPosition(Body, value.X, value.Y, value.Z); |
368 | _position = value; | 368 | _position = value; |
@@ -386,7 +386,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
386 | set | 386 | set |
387 | { | 387 | { |
388 | m_pidControllerActive = true; | 388 | m_pidControllerActive = true; |
389 | lock (OdeScene.OdeLock) | 389 | lock (_parent_scene.OdeLock) |
390 | { | 390 | { |
391 | d.JointDestroy(Amotor); | 391 | d.JointDestroy(Amotor); |
392 | 392 | ||
@@ -863,7 +863,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
863 | /// </summary> | 863 | /// </summary> |
864 | public void Destroy() | 864 | public void Destroy() |
865 | { | 865 | { |
866 | lock (OdeScene.OdeLock) | 866 | lock (_parent_scene.OdeLock) |
867 | { | 867 | { |
868 | // Kill the Amotor | 868 | // Kill the Amotor |
869 | d.JointDestroy(Amotor); | 869 | d.JointDestroy(Amotor); |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index a2c0c6b..452317a 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -990,7 +990,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
990 | } | 990 | } |
991 | 991 | ||
992 | 992 | ||
993 | lock (OdeScene.OdeLock) | 993 | lock (_parent_scene.OdeLock) |
994 | { | 994 | { |
995 | CreateGeom(m_targetSpace, _mesh); | 995 | CreateGeom(m_targetSpace, _mesh); |
996 | 996 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 2676def..90285c2 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -242,7 +242,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
242 | // split static geometry collision handling into spaces of 30 meters | 242 | // split static geometry collision handling into spaces of 30 meters |
243 | public IntPtr[,] staticPrimspace; | 243 | public IntPtr[,] staticPrimspace; |
244 | 244 | ||
245 | public static Object OdeLock = new Object(); | 245 | public Object OdeLock; |
246 | 246 | ||
247 | public IMesher mesher; | 247 | public IMesher mesher; |
248 | 248 | ||
@@ -259,6 +259,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
259 | /// </summary> | 259 | /// </summary> |
260 | public OdeScene(CollisionLocker dode) | 260 | public OdeScene(CollisionLocker dode) |
261 | { | 261 | { |
262 | OdeLock = new Object(); | ||
262 | ode = dode; | 263 | ode = dode; |
263 | nearCallback = near; | 264 | nearCallback = near; |
264 | triCallback = TriCallback; | 265 | triCallback = TriCallback; |