aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/XEngine/XEngine.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs19
1 files changed, 9 insertions, 10 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 44397b7..105d97d 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -176,12 +176,16 @@ namespace OpenSim.Region.ScriptEngine.XEngine
176 get { return m_ConfigSource; } 176 get { return m_ConfigSource; }
177 } 177 }
178 178
179 /// <summary>
180 /// Event fired after the script engine has finished removing a script.
181 /// </summary>
179 public event ScriptRemoved OnScriptRemoved; 182 public event ScriptRemoved OnScriptRemoved;
183
184 /// <summary>
185 /// Event fired after the script engine has finished removing a script from an object.
186 /// </summary>
180 public event ObjectRemoved OnObjectRemoved; 187 public event ObjectRemoved OnObjectRemoved;
181 188
182 //
183 // IRegionModule functions
184 //
185 public void Initialise(IConfigSource configSource) 189 public void Initialise(IConfigSource configSource)
186 { 190 {
187 if (configSource.Configs["XEngine"] == null) 191 if (configSource.Configs["XEngine"] == null)
@@ -1122,7 +1126,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1122 // Give the script some time to finish processing its last event. Simply aborting the script thread can 1126 // Give the script some time to finish processing its last event. Simply aborting the script thread can
1123 // cause issues on mono 2.6, 2.10 and possibly later where locks are not released properly on abort. 1127 // cause issues on mono 2.6, 2.10 and possibly later where locks are not released properly on abort.
1124 instance.Stop(1000); 1128 instance.Stop(1000);
1125 1129
1126// bool objectRemoved = false; 1130// bool objectRemoved = false;
1127 1131
1128 lock (m_PrimObjects) 1132 lock (m_PrimObjects)
@@ -1153,14 +1157,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1153 UnloadAppDomain(instance.AppDomain); 1157 UnloadAppDomain(instance.AppDomain);
1154 } 1158 }
1155 1159
1156 instance = null;
1157
1158 ObjectRemoved handlerObjectRemoved = OnObjectRemoved; 1160 ObjectRemoved handlerObjectRemoved = OnObjectRemoved;
1159 if (handlerObjectRemoved != null) 1161 if (handlerObjectRemoved != null)
1160 { 1162 handlerObjectRemoved(instance.ObjectID);
1161 SceneObjectPart part = m_Scene.GetSceneObjectPart(localID);
1162 handlerObjectRemoved(part.UUID);
1163 }
1164 1163
1165 ScriptRemoved handlerScriptRemoved = OnScriptRemoved; 1164 ScriptRemoved handlerScriptRemoved = OnScriptRemoved;
1166 if (handlerScriptRemoved != null) 1165 if (handlerScriptRemoved != null)