Actually call Close() for shared region modules when the simulator is being shutdown.

Adds regression test for this case.
This commit is contained in:
Justin Clark-Casey (justincc)
2014-07-02 23:48:44 +01:00
parent fe6dab7f13
commit 889194db63
9 changed files with 361 additions and 49 deletions

View File

@@ -56,6 +56,11 @@ namespace OpenSim.Framework.Servers
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary>
/// Used by tests to suppress Environment.Exit(0) so that post-run operations are possible.
/// </summary>
public bool SuppressExit { get; set; }
/// <summary>
/// This will control a periodic log printout of the current 'show stats' (if they are active) for this
/// server.
@@ -109,7 +114,8 @@ namespace OpenSim.Framework.Servers
base.ShutdownSpecific();
Environment.Exit(0);
if (!SuppressExit)
Environment.Exit(0);
}
/// <summary>

View File

@@ -1964,10 +1964,15 @@ namespace OpenSim.Framework
{
if (maxThreads < 2)
throw new ArgumentOutOfRangeException("maxThreads", "maxThreads must be greater than 2");
if (minThreads > maxThreads || minThreads < 2)
throw new ArgumentOutOfRangeException("minThreads", "minThreads must be greater than 2 and less than or equal to maxThreads");
if (m_ThreadPool != null)
throw new InvalidOperationException("SmartThreadPool is already initialized");
{
m_log.Warn("SmartThreadPool is already initialized. Ignoring request.");
return;
}
STPStartInfo startInfo = new STPStartInfo();
startInfo.ThreadPoolName = "Util";