mirror of
https://github.com/opensim/opensim.git
synced 2026-05-17 04:05:40 +08:00
Mantis#2183. Thank you kindly, Ewe Loon for a patch that addresses:
after using llTakeControls my sim receives about 200 messages per second, l of which get queued , this could be because there is no lag as the viewer and sim are on the same computer. The patch I have included checks to see if the "Changed" param is 0 then searches the EventQueue for Control messages being sent to the same localid, if it finds a message already in the Queue and Changed==0 then the new message is only notifing you the key is being held, since there is already a message the new one isnt needed so it isnt added to the queue.
This commit is contained in:
@@ -288,6 +288,31 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region " Check execution queue for a specified Event"
|
||||
/// <summary>
|
||||
/// checks to see if a specified event type is already in the queue
|
||||
/// </summary>
|
||||
/// <param name="localID">Region object ID</param>
|
||||
/// <param name="FunctionName">Name of the function, will be state + "_event_" + FunctionName</param>
|
||||
/// <returns>true if event is found , false if not found</returns>
|
||||
///
|
||||
public bool CheckEeventQueueForEvent(uint localID, string FunctionName)
|
||||
{
|
||||
if (eventQueue.Count > 0)
|
||||
{
|
||||
lock (eventQueue)
|
||||
{
|
||||
foreach (EventQueueManager.QueueItemStruct QIS in eventQueue)
|
||||
{
|
||||
if ((QIS.functionName == FunctionName) && (QIS.localID == localID))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region " Add events to execution queue "
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user