From 746829967315cc82560a855a4772e45888bf8fbe Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 3 Apr 2012 05:50:13 +0100 Subject: 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. --- .../CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/CoreModules') 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; using OpenSim.Framework.Client; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; +using OpenSim.Region.Physics.Manager; using OpenSim.Services.Interfaces; using GridRegion = OpenSim.Services.Interfaces.GridRegion; @@ -1803,10 +1804,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer { if (!grp.IsDeleted) { - if (grp.RootPart.PhysActor != null) - { - grp.RootPart.PhysActor.CrossingFailure(); - } + PhysicsActor pa = grp.RootPart.PhysActor; + if (pa != null) + pa.CrossingFailure(); } m_log.ErrorFormat("[ENTITY TRANSFER MODULE]: Prim crossing failed for {0}", grp); -- cgit v1.1