From 74c68474e01eedc6cc4c9ef26386939c1d693172 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 14 Dec 2010 18:44:26 -0800 Subject: Another attempt at moving heavy computation away from the Update loop. #LoginLag --- OpenSim/Region/Framework/Scenes/Scene.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 73a0803..52e2e5d 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -176,6 +176,8 @@ namespace OpenSim.Region.Framework.Scenes private object m_deleting_scene_object = new object(); private object m_cleaningAttachments = new object(); + private bool m_cleaningTemps = false; + private UpdatePrioritizationSchemes m_priorityScheme = UpdatePrioritizationSchemes.Time; private bool m_reprioritizationEnabled = true; private double m_reprioritizationInterval = 5000.0; @@ -1272,10 +1274,11 @@ namespace OpenSim.Region.Framework.Scenes physicsMS = Util.EnvironmentTickCountSubtract(tmpPhysicsMS); // Delete temp-on-rez stuff - if (m_frame % m_update_backup == 0) + if (m_frame % m_update_backup == 0 && !m_cleaningTemps) { int tmpTempOnRezMS = Util.EnvironmentTickCount(); - CleanTempObjects(); + m_cleaningTemps = true; + Util.FireAndForget(delegate { CleanTempObjects(); m_cleaningTemps = false; }); tempOnRezMS = Util.EnvironmentTickCountSubtract(tmpTempOnRezMS); } @@ -4391,6 +4394,7 @@ namespace OpenSim.Region.Framework.Scenes } } } + } public void DeleteFromStorage(UUID uuid) -- cgit v1.1