Swap the locking of m_EventQueue and m_Script to ease locks on script inventory operations

avinationmerge
CasperW 2009-11-23 20:25:53 +01:00
parent 73c2162ff6
commit 247c66b3fe
1 changed files with 138 additions and 134 deletions

View File

@ -640,11 +640,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
/// <returns></returns> /// <returns></returns>
public object EventProcessor() public object EventProcessor()
{ {
lock (m_Script)
{
EventParams data = null; EventParams data = null;
lock (m_EventQueue) lock (m_EventQueue)
{
lock (m_Script)
{ {
data = (EventParams) m_EventQueue.Dequeue(); data = (EventParams) m_EventQueue.Dequeue();
if (data == null) // Shouldn't happen if (data == null) // Shouldn't happen
@ -670,6 +671,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
if (data.EventName == "collision") if (data.EventName == "collision")
m_CollisionInQueue = false; m_CollisionInQueue = false;
} }
}
lock(m_Script)
{
//m_log.DebugFormat("[XENGINE]: Processing event {0} for {1}", data.EventName, this); //m_log.DebugFormat("[XENGINE]: Processing event {0} for {1}", data.EventName, this);