aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-04-03 05:50:13 +0100
committerJustin Clark-Casey (justincc)2012-04-03 05:51:38 +0100
commit746829967315cc82560a855a4772e45888bf8fbe (patch)
tree1e21d5c27101cb505a4ac4bcdf6e356f2e409d52 /OpenSim/Region/CoreModules
parentImplement bulk inventory update over CAPS (not recursive by design, (diff)
downloadopensim-SC-746829967315cc82560a855a4772e45888bf8fbe.zip
opensim-SC-746829967315cc82560a855a4772e45888bf8fbe.tar.gz
opensim-SC-746829967315cc82560a855a4772e45888bf8fbe.tar.bz2
opensim-SC-746829967315cc82560a855a4772e45888bf8fbe.tar.xz
Eliminate race condition where many callers would check SOP.PhysicsActor != null then assume it was still not null in later code.
Another thread could come and turn off physics for a part (null PhysicsActor) at any point. Had to turn off localCopy on warp3D CoreModules section in prebuild.xml since on current nant this copies all DLLs in bin/ which can be a very large number with compiled DLLs No obvious reason for doing that copy - nothing else does it.
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs8
1 files changed, 4 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 427a49d..86e10d4 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -36,6 +36,7 @@ using OpenSim.Framework.Capabilities;
36using OpenSim.Framework.Client; 36using OpenSim.Framework.Client;
37using OpenSim.Region.Framework.Interfaces; 37using OpenSim.Region.Framework.Interfaces;
38using OpenSim.Region.Framework.Scenes; 38using OpenSim.Region.Framework.Scenes;
39using OpenSim.Region.Physics.Manager;
39using OpenSim.Services.Interfaces; 40using OpenSim.Services.Interfaces;
40 41
41using GridRegion = OpenSim.Services.Interfaces.GridRegion; 42using GridRegion = OpenSim.Services.Interfaces.GridRegion;
@@ -1803,10 +1804,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1803 { 1804 {
1804 if (!grp.IsDeleted) 1805 if (!grp.IsDeleted)
1805 { 1806 {
1806 if (grp.RootPart.PhysActor != null) 1807 PhysicsActor pa = grp.RootPart.PhysActor;
1807 { 1808 if (pa != null)
1808 grp.RootPart.PhysActor.CrossingFailure(); 1809 pa.CrossingFailure();
1809 }
1810 } 1810 }
1811 1811
1812 m_log.ErrorFormat("[ENTITY TRANSFER MODULE]: Prim crossing failed for {0}", grp); 1812 m_log.ErrorFormat("[ENTITY TRANSFER MODULE]: Prim crossing failed for {0}", grp);