Swap the locking of m_EventQueue and m_Script to ease locks on script inventory operations
parent
73c2162ff6
commit
247c66b3fe
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue