diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 19 |
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) |