aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xOpenSim/Region/Framework/Scenes/Scene.cs11
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs4
2 files changed, 9 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index e44f11a..d7a4ca4 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1582,6 +1582,8 @@ namespace OpenSim.Region.Framework.Scenes
1582 } 1582 }
1583 1583
1584 GC.Collect(); 1584 GC.Collect();
1585 GC.WaitForPendingFinalizers();
1586 GC.Collect();
1585 // tell physics to finish building actor 1587 // tell physics to finish building actor
1586 m_sceneGraph.ProcessPhysicsPreSimulation(); 1588 m_sceneGraph.ProcessPhysicsPreSimulation();
1587 1589
@@ -1856,13 +1858,9 @@ namespace OpenSim.Region.Framework.Scenes
1856 1858
1857 if (!LoginsEnabled && Frame == 20) 1859 if (!LoginsEnabled && Frame == 20)
1858 { 1860 {
1859 // m_log.DebugFormat("{0} {1} {2}", LoginsDisabled, m_sceneGraph.GetActiveScriptsCount(), LoginLock);
1860
1861 // In 99.9% of cases it is a bad idea to manually force garbage collection. However,
1862 // this is a rare case where we know we have just went through a long cycle of heap
1863 // allocations, and there is no more work to be done until someone logs in
1864 GC.Collect(); 1861 GC.Collect();
1865 1862 GC.WaitForPendingFinalizers();
1863 GC.Collect();
1866 if (!LoginLock) 1864 if (!LoginLock)
1867 { 1865 {
1868 if (!StartDisabled) 1866 if (!StartDisabled)
@@ -1887,6 +1885,7 @@ namespace OpenSim.Region.Framework.Scenes
1887 // LoginLock can currently only be set by a region module implementation. 1885 // LoginLock can currently only be set by a region module implementation.
1888 // If somehow this hasn't been done then the quickest way to bugfix is to see the 1886 // If somehow this hasn't been done then the quickest way to bugfix is to see the
1889 // NullReferenceException 1887 // NullReferenceException
1888
1890 IRegionReadyModule rrm = RequestModuleInterface<IRegionReadyModule>(); 1889 IRegionReadyModule rrm = RequestModuleInterface<IRegionReadyModule>();
1891 rrm.TriggerRegionReady(this); 1890 rrm.TriggerRegionReady(this);
1892 } 1891 }
diff --git a/OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs b/OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs
index 870c0bb..1725eb4 100644
--- a/OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs
@@ -214,6 +214,10 @@ namespace OpenSim.Region.OptionalModules.Scripting.RegionReady
214 m_scene.EventManager.OnEmptyScriptCompileQueue -= OnEmptyScriptCompileQueue; 214 m_scene.EventManager.OnEmptyScriptCompileQueue -= OnEmptyScriptCompileQueue;
215 m_scene.LoginLock = false; 215 m_scene.LoginLock = false;
216 216
217 GC.Collect();
218 GC.WaitForPendingFinalizers();
219 GC.Collect();
220
217 if (!m_scene.StartDisabled) 221 if (!m_scene.StartDisabled)
218 { 222 {
219 m_scene.LoginsEnabled = true; 223 m_scene.LoginsEnabled = true;