XEngine: fix collisions, add event coalescing for collision events.

Fix a nasty concurrency issue that could cause a high event frequency
to start more than one thread pool job for a single script.
This commit is contained in:
Melanie Thielker
2008-09-18 18:50:39 +00:00
parent e6f3181d3a
commit 903fbd1f06
3 changed files with 171 additions and 142 deletions

View File

@@ -2294,14 +2294,12 @@ namespace OpenSim.Region.Physics.OdePlugin
if (CollisionEventsThisFrame == null)
return;
//if (CollisionEventsThisFrame.m_objCollisionList == null)
// return;
base.SendCollisionUpdate(CollisionEventsThisFrame);
if (CollisionEventsThisFrame.m_objCollisionList.Count > 0)
{
base.SendCollisionUpdate(CollisionEventsThisFrame);
if(CollisionEventsThisFrame.m_objCollisionList.Count == 0)
CollisionEventsThisFrame = null;
else
CollisionEventsThisFrame = new CollisionEventUpdate();
}
}
public override bool SubscribedEvents()