diff options
author | Teravus Ovares | 2008-02-20 20:07:12 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-02-20 20:07:12 +0000 |
commit | 740ce20d9df4327aaf9660613b9ce11a81d53c83 (patch) | |
tree | 7a8e35f615732b4570e2f338ca4ca0c286e13152 /OpenSim/Region/Physics/Manager/PhysicsActor.cs | |
parent | * Properly guard removal of asset request lists on AssetCache.AssetNotFound (... (diff) | |
download | opensim-SC-740ce20d9df4327aaf9660613b9ce11a81d53c83.zip opensim-SC-740ce20d9df4327aaf9660613b9ce11a81d53c83.tar.gz opensim-SC-740ce20d9df4327aaf9660613b9ce11a81d53c83.tar.bz2 opensim-SC-740ce20d9df4327aaf9660613b9ce11a81d53c83.tar.xz |
* Found the land bug, yay
Diffstat (limited to 'OpenSim/Region/Physics/Manager/PhysicsActor.cs')
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsActor.cs | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index 088d85a..f44c160 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -136,9 +136,13 @@ namespace OpenSim.Region.Physics.Manager | |||
136 | // a race condition if the last subscriber unsubscribes | 136 | // a race condition if the last subscriber unsubscribes |
137 | // immediately after the null check and before the event is raised. | 137 | // immediately after the null check and before the event is raised. |
138 | RequestTerseUpdate handler = OnRequestTerseUpdate; | 138 | RequestTerseUpdate handler = OnRequestTerseUpdate; |
139 | |||
139 | if (handler != null) | 140 | if (handler != null) |
140 | { | 141 | { |
141 | handler(); | 142 | lock (handler) |
143 | { | ||
144 | handler(); | ||
145 | } | ||
142 | } | 146 | } |
143 | } | 147 | } |
144 | 148 | ||
@@ -150,17 +154,25 @@ namespace OpenSim.Region.Physics.Manager | |||
150 | OutOfBounds handler = OnOutOfBounds; | 154 | OutOfBounds handler = OnOutOfBounds; |
151 | if (handler != null) | 155 | if (handler != null) |
152 | { | 156 | { |
153 | handler(pos); | 157 | lock (handler) |
158 | { | ||
159 | handler(pos); | ||
160 | } | ||
154 | } | 161 | } |
155 | } | 162 | } |
156 | 163 | ||
157 | public virtual void SendCollisionUpdate(EventArgs e) | 164 | public virtual void SendCollisionUpdate(EventArgs e) |
158 | { | 165 | { |
159 | CollisionUpdate handler = OnCollisionUpdate; | 166 | CollisionUpdate handler = OnCollisionUpdate; |
167 | |||
160 | if (handler != null) | 168 | if (handler != null) |
161 | { | 169 | { |
162 | handler(e); | 170 | lock (handler) |
171 | { | ||
172 | handler(e); | ||
173 | } | ||
163 | } | 174 | } |
175 | |||
164 | } | 176 | } |
165 | 177 | ||
166 | 178 | ||