diff options
author | John Hurliman | 2009-10-26 16:33:04 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-26 16:33:04 -0700 |
commit | 4847e62e9fd1cd473cc180220a379efba93f94a6 (patch) | |
tree | 509da282d16f1cfa7d2500debc5b56c48799ec98 /OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs | |
parent | Added calls to GC.AddMemoryPressure() when unmanaged memory is allocated for ... (diff) | |
download | opensim-SC-4847e62e9fd1cd473cc180220a379efba93f94a6.zip opensim-SC-4847e62e9fd1cd473cc180220a379efba93f94a6.tar.gz opensim-SC-4847e62e9fd1cd473cc180220a379efba93f94a6.tar.bz2 opensim-SC-4847e62e9fd1cd473cc180220a379efba93f94a6.tar.xz |
* Switched all operations on the list of clients that could be either sync or async to use Scene.ForEachClient() instead of referencing ClientManager directly
* Added a new [Startup] config option called use_async_when_possible to signal how to run operations that could be either sync or async
* Changed Scene.ForEachClient to respect use_async_when_possible
* Fixing a potential deadlock in Parallel.ForEach by locking on a temporary object instead of the enumerator (which may be shared across multiple invocations on ForEach). Thank you diva
Diffstat (limited to 'OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs')
-rw-r--r-- | OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs b/OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs index b6513e2..1a72971 100644 --- a/OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs +++ b/OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs | |||
@@ -183,10 +183,12 @@ namespace OpenSim.Region.OptionalModules.ContentManagement | |||
183 | public virtual void HideFromAll() | 183 | public virtual void HideFromAll() |
184 | { | 184 | { |
185 | foreach (SceneObjectPart part in m_Entity.Children.Values) | 185 | foreach (SceneObjectPart part in m_Entity.Children.Values) |
186 | m_Entity.Scene.ClientManager.ForEach( | 186 | { |
187 | m_Entity.Scene.ForEachClient( | ||
187 | delegate(IClientAPI controller) | 188 | delegate(IClientAPI controller) |
188 | { controller.SendKillObject(m_Entity.RegionHandle, part.LocalId); } | 189 | { controller.SendKillObject(m_Entity.RegionHandle, part.LocalId); } |
189 | ); | 190 | ); |
191 | } | ||
190 | } | 192 | } |
191 | 193 | ||
192 | public void SendFullUpdate(IClientAPI client) | 194 | public void SendFullUpdate(IClientAPI client) |
@@ -202,7 +204,7 @@ namespace OpenSim.Region.OptionalModules.ContentManagement | |||
202 | 204 | ||
203 | public void SendFullUpdateToAll() | 205 | public void SendFullUpdateToAll() |
204 | { | 206 | { |
205 | m_Entity.Scene.ClientManager.ForEach( | 207 | m_Entity.Scene.ForEachClient( |
206 | delegate(IClientAPI controller) | 208 | delegate(IClientAPI controller) |
207 | { m_Entity.SendFullUpdateToClient(controller); } | 209 | { m_Entity.SendFullUpdateToClient(controller); } |
208 | ); | 210 | ); |