If [XEngine] ScriptStopStrategy is changed between abort and co-op, for the existing session use the previous strategy for that script rather than not starting the script at all.

We have to do this since we can't unload existing DLLs if they're all in the same AppDomain.
But we can still update the underlying DLL which will be used in the next simulator session.
This commit is contained in:
Justin Clark-Casey (justincc)
2014-07-11 00:03:02 +01:00
parent 6d3b409af2
commit d7b9260496
6 changed files with 112 additions and 68 deletions

View File

@@ -34,7 +34,36 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
{
public interface ICompiler
{
void PerformScriptCompile(string source, string asset, UUID ownerID, out string assembly, out Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> linemap);
/// <summary>
/// Performs the script compile.
/// </summary>
/// <param name="Script"></param>
/// <param name="asset"></param>
/// <param name="ownerUUID"></param>
/// <param name="alwaysRecompile">
/// If set to true then always recompile the script, even if we have a DLL already cached.
/// </param>
/// <param name="assembly"></param>
/// <param name="linemap"></param>
void PerformScriptCompile(
string source, string asset, UUID ownerID,
out string assembly, out Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> linemap);
/// <summary>
/// Performs the script compile.
/// </summary>
/// <param name="Script"></param>
/// <param name="asset"></param>
/// <param name="ownerUUID"></param>
/// <param name="alwaysRecompile">
/// If set to true then always recompile the script, even if we have a DLL already cached.
/// </param>
/// <param name="assembly"></param>
/// <param name="linemap"></param>
void PerformScriptCompile(
string source, string asset, UUID ownerID, bool alwaysRecompile,
out string assembly, out Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> linemap);
string[] GetWarnings();
}
}