diff options
Diffstat (limited to 'OpenSim')
-rwxr-xr-x | OpenSim/Region/Framework/Scenes/Scene.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs | 4 |
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; |