If a script state save fails for some reason on shutdown/region removal, get xengine to spit out some useful information and continue to save other script states

0.7.4.1
Justin Clark-Casey (justincc) 2012-08-23 23:13:53 +01:00
parent f1d4b8d83e
commit b199a2dea3
1 changed files with 25 additions and 2 deletions

View File

@ -589,8 +589,20 @@ namespace OpenSim.Region.ScriptEngine.XEngine
if (m_Assemblies.ContainsKey(instance.AssetID)) if (m_Assemblies.ContainsKey(instance.AssetID))
{ {
string assembly = m_Assemblies[instance.AssetID]; string assembly = m_Assemblies[instance.AssetID];
try
{
instance.SaveState(assembly); instance.SaveState(assembly);
} }
catch (Exception e)
{
m_log.Error(
string.Format(
"[XEngine]: Failed final state save for script {0}.{1}, item UUID {2}, prim UUID {3} in {4}. Exception ",
instance.PrimName, instance.ScriptName, instance.ItemID, instance.ObjectID, World.Name)
, e);
}
}
// Clear the event queue and abort the instance thread // Clear the event queue and abort the instance thread
// //
@ -707,8 +719,19 @@ namespace OpenSim.Region.ScriptEngine.XEngine
assembly = m_Assemblies[i.AssetID]; assembly = m_Assemblies[i.AssetID];
} }
try
{
i.SaveState(assembly); i.SaveState(assembly);
} }
catch (Exception e)
{
m_log.Error(
string.Format(
"[XEngine]: Failed to save state of script {0}.{1}, item UUID {2}, prim UUID {3} in {4}. Exception ",
i.PrimName, i.ScriptName, i.ItemID, i.ObjectID, World.Name)
, e);
}
}
instances.Clear(); instances.Clear();