mirror of
https://github.com/opensim/opensim.git
synced 2026-08-03 15:36:16 +08:00
When scripts are sleeping, don't count that as execution time
Sleeping doesn't use the CPU.
This commit is contained in:
@@ -207,6 +207,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||
|
||||
private EventWaitHandle m_coopSleepHandle;
|
||||
|
||||
private Stopwatch executionTimer = new Stopwatch();
|
||||
|
||||
public void ClearQueue()
|
||||
{
|
||||
m_TimerQueued = false;
|
||||
@@ -278,7 +280,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||
foreach (string api in am.GetApis())
|
||||
{
|
||||
m_Apis[api] = am.CreateApi(api);
|
||||
m_Apis[api].Initialize(Engine, Part, ScriptTask, m_coopSleepHandle);
|
||||
m_Apis[api].Initialize(Engine, Part, ScriptTask, m_coopSleepHandle, executionTimer);
|
||||
}
|
||||
|
||||
try
|
||||
@@ -753,8 +755,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||
if (Suspended)
|
||||
return 0;
|
||||
|
||||
Stopwatch timer = new Stopwatch();
|
||||
timer.Start();
|
||||
executionTimer.Restart();
|
||||
|
||||
try
|
||||
{
|
||||
@@ -762,9 +763,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||
}
|
||||
finally
|
||||
{
|
||||
timer.Stop();
|
||||
ExecutionTime.AddSample(timer);
|
||||
Part.ParentGroup.Scene.AddScriptExecutionTime(timer.ElapsedTicks);
|
||||
executionTimer.Stop();
|
||||
ExecutionTime.AddSample(executionTimer);
|
||||
Part.ParentGroup.Scene.AddScriptExecutionTime(executionTimer.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user