clockwerk-opensim-stable
/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs |
@@ -49,8 +49,8 @@ |
{ |
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
|
private static Thread cmdHandlerThread; |
private static int cmdHandlerThreadCycleSleepms; |
private static readonly System.Timers.Timer cmdEventTimer = new System.Timers.Timer(); |
|
/// <summary> |
/// Lock for reading/writing static components of AsyncCommandManager. |
@@ -172,18 +172,24 @@ |
if (!m_XmlRequest.ContainsKey(m_ScriptEngine)) |
m_XmlRequest[m_ScriptEngine] = new XmlRequest(this); |
|
StartThread(); |
} |
} |
if (cmdEventTimer.Enabled.Equals(true)) return; |
|
private static void StartThread() |
{ |
if (cmdHandlerThread == null) |
{ |
// Start the thread that will be doing the work |
cmdHandlerThread |
= Watchdog.StartThread( |
CmdHandlerThreadLoop, "AsyncLSLCmdHandlerThread", ThreadPriority.Normal, true, true); |
// Start the timer |
cmdEventTimer.Elapsed += (sender, args) => |
{ |
try |
{ |
DoOneCmdHandlerPass(); |
} |
catch (Exception e) |
{ |
m_log.Error("[ASYNC COMMAND MANAGER]: Exception in command handler pass: ", e); |
} |
}; |
|
cmdEventTimer.Interval = cmdHandlerThreadCycleSleepms; |
cmdEventTimer.Enabled = true; |
|
} |
} |
|
@@ -191,7 +197,7 @@ |
{ |
// cmdHandlerThreadCycleSleepms = m_ScriptEngine.Config.GetInt("AsyncLLCommandLoopms", 100); |
// TODO: Make this sane again |
cmdHandlerThreadCycleSleepms = 100; |
cmdHandlerThreadCycleSleepms = 50; |
} |
|
~AsyncCommandManager() |
@@ -439,4 +445,4 @@ |
} |
} |
} |
} |
} |
/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs |
@@ -105,7 +105,7 @@ |
protected AsyncCommandManager AsyncCommands = null; |
protected float m_ScriptDelayFactor = 1.0f; |
protected float m_ScriptDistanceFactor = 1.0f; |
protected float m_MinTimerInterval = 0.5f; |
protected float m_MinTimerInterval = 0.05f; |
protected float m_recoilScaleFactor = 0.0f; |
|
protected DateTime m_timer = DateTime.Now; |