Temporarily add root agent rez attachments work to job engine if it is running rather than as a fire and forget.
Experiment to see if serializing attachment rez and send initial data jobs improves other parts of sim performance.ghosts
parent
a086adf427
commit
0b7736b861
|
@ -133,7 +133,7 @@ namespace OpenSim.Framework.Monitoring
|
|||
/// /summary>
|
||||
public static event Action<ThreadWatchdogInfo> OnWatchdogTimeout;
|
||||
|
||||
private static JobEngine m_jobEngine;
|
||||
public static JobEngine JobEngine { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Is this watchdog active?
|
||||
|
@ -175,7 +175,7 @@ namespace OpenSim.Framework.Monitoring
|
|||
|
||||
static Watchdog()
|
||||
{
|
||||
m_jobEngine = new JobEngine();
|
||||
JobEngine = new JobEngine();
|
||||
m_threads = new Dictionary<int, ThreadWatchdogInfo>();
|
||||
m_watchdogTimer = new System.Timers.Timer(WATCHDOG_INTERVAL_MS);
|
||||
m_watchdogTimer.AutoReset = false;
|
||||
|
@ -462,8 +462,8 @@ namespace OpenSim.Framework.Monitoring
|
|||
return;
|
||||
}
|
||||
|
||||
if (m_jobEngine.IsRunning)
|
||||
m_jobEngine.QueueRequest(name, callback, obj);
|
||||
if (JobEngine.IsRunning)
|
||||
JobEngine.QueueRequest(name, callback, obj);
|
||||
else
|
||||
RunInThread(callback, name, obj, log);
|
||||
}
|
||||
|
|
|
@ -1228,10 +1228,14 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// viewers without (e.g. v1 viewers) will not, so we still need to make this call.
|
||||
if (Scene.AttachmentsModule != null)
|
||||
{
|
||||
Util.FireAndForget(o =>
|
||||
{
|
||||
Scene.AttachmentsModule.RezAttachments(this);
|
||||
});
|
||||
if (Watchdog.JobEngine.IsRunning)
|
||||
Watchdog.RunWhenPossible(
|
||||
"RezAttachments",
|
||||
o => Scene.AttachmentsModule.RezAttachments(this),
|
||||
string.Format("Rez attachments for {0} in {1}", Name, Scene.Name),
|
||||
null);
|
||||
else
|
||||
Util.FireAndForget(o => Scene.AttachmentsModule.RezAttachments(this));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue