diff options
author | Justin Clark-Casey (justincc) | 2012-04-03 05:50:13 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-04-03 05:51:38 +0100 |
commit | 746829967315cc82560a855a4772e45888bf8fbe (patch) | |
tree | 1e21d5c27101cb505a4ac4bcdf6e356f2e409d52 /OpenSim/Region/CoreModules | |
parent | Implement bulk inventory update over CAPS (not recursive by design, (diff) | |
download | opensim-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.cs | 8 |
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; | |||
36 | using OpenSim.Framework.Client; | 36 | using OpenSim.Framework.Client; |
37 | using OpenSim.Region.Framework.Interfaces; | 37 | using OpenSim.Region.Framework.Interfaces; |
38 | using OpenSim.Region.Framework.Scenes; | 38 | using OpenSim.Region.Framework.Scenes; |
39 | using OpenSim.Region.Physics.Manager; | ||
39 | using OpenSim.Services.Interfaces; | 40 | using OpenSim.Services.Interfaces; |
40 | 41 | ||
41 | using GridRegion = OpenSim.Services.Interfaces.GridRegion; | 42 | using 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); |