aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-11-17 21:03:08 +0000
committerJustin Clark-Casey (justincc)2011-11-17 21:03:08 +0000
commitcacc02883526d6913be13d745215d7367708412e (patch)
treedd06d0f6f8a296f6274c9f946ad7a3f108cfa73d /OpenSim/Region/Framework
parentStop OdePrim and OdeCharacter insanely overriding set LocalID to set their ow... (diff)
downloadopensim-SC_OLD-cacc02883526d6913be13d745215d7367708412e.zip
opensim-SC_OLD-cacc02883526d6913be13d745215d7367708412e.tar.gz
opensim-SC_OLD-cacc02883526d6913be13d745215d7367708412e.tar.bz2
opensim-SC_OLD-cacc02883526d6913be13d745215d7367708412e.tar.xz
If the entire simulator is shutting down then don't bother to unload the scripts from the appdomain in XEngine.
All the other actions (script state save, etc.) still occur. This makes shutdown where there are many scripts vastly quicker.
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs26
1 files changed, 16 insertions, 10 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 4906665..4a4d98f 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -98,9 +98,10 @@ namespace OpenSim.Region.Framework.Scenes
98 98
99 public event OnPluginConsoleDelegate OnPluginConsole; 99 public event OnPluginConsoleDelegate OnPluginConsole;
100 100
101 public delegate void OnShutdownDelegate(); 101 /// <summary>
102 102 /// Triggered when the entire simulator is shutdown.
103 public event OnShutdownDelegate OnShutdown; 103 /// </summary>
104 public event Action OnShutdown;
104 105
105 public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs); 106 public delegate void ObjectDeGrabDelegate(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs);
106 public delegate void ScriptResetDelegate(uint localID, UUID itemID); 107 public delegate void ScriptResetDelegate(uint localID, UUID itemID);
@@ -113,9 +114,14 @@ namespace OpenSim.Region.Framework.Scenes
113 114
114 public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest; 115 public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
115 116
116 public delegate void SceneShuttingDownDelegate(Scene scene); 117 /// <summary>
117 118 /// Triggered when an individual scene is shutdown.
118 public event SceneShuttingDownDelegate OnSceneShuttingDown; 119 /// </summary>
120 /// <remarks>
121 /// This does not automatically mean that the entire simulator is shutting down. Listen to OnShutdown for that
122 /// notification.
123 /// </remarks>
124 public event Action<Scene> OnSceneShuttingDown;
119 125
120 /// <summary> 126 /// <summary>
121 /// Fired when an object is touched/grabbed. 127 /// Fired when an object is touched/grabbed.
@@ -869,10 +875,10 @@ namespace OpenSim.Region.Framework.Scenes
869 875
870 public void TriggerShutdown() 876 public void TriggerShutdown()
871 { 877 {
872 OnShutdownDelegate handlerShutdown = OnShutdown; 878 Action handlerShutdown = OnShutdown;
873 if (handlerShutdown != null) 879 if (handlerShutdown != null)
874 { 880 {
875 foreach (OnShutdownDelegate d in handlerShutdown.GetInvocationList()) 881 foreach (Action d in handlerShutdown.GetInvocationList())
876 { 882 {
877 try 883 try
878 { 884 {
@@ -2212,10 +2218,10 @@ namespace OpenSim.Region.Framework.Scenes
2212 2218
2213 public void TriggerSceneShuttingDown(Scene s) 2219 public void TriggerSceneShuttingDown(Scene s)
2214 { 2220 {
2215 SceneShuttingDownDelegate handler = OnSceneShuttingDown; 2221 Action<Scene> handler = OnSceneShuttingDown;
2216 if (handler != null) 2222 if (handler != null)
2217 { 2223 {
2218 foreach (SceneShuttingDownDelegate d in handler.GetInvocationList()) 2224 foreach (Action<Scene> d in handler.GetInvocationList())
2219 { 2225 {
2220 try 2226 try
2221 { 2227 {