Experimental locking of taint processing

avinationmerge
Melanie 2010-09-25 05:57:08 +02:00
parent 1c1f308052
commit 83b16612ce
1 changed files with 92 additions and 88 deletions

View File

@ -143,6 +143,7 @@ namespace OpenSim.Region.Physics.OdePlugin
// unique UUID of this character object // unique UUID of this character object
public UUID m_uuid; public UUID m_uuid;
public bool bad = false; public bool bad = false;
private Object m_syncRoot = new Object();
public OdeCharacter(String avName, OdeScene parent_scene, Vector3 pos, CollisionLocker dode, Vector3 size, float pid_d, float pid_p, float capsule_radius, float tensor, float density, float height_fudge_factor, float walk_divisor, float rundivisor) public OdeCharacter(String avName, OdeScene parent_scene, Vector3 pos, CollisionLocker dode, Vector3 size, float pid_d, float pid_p, float capsule_radius, float tensor, float density, float height_fudge_factor, float walk_divisor, float rundivisor)
{ {
@ -1322,6 +1323,8 @@ Console.WriteLine("**** Create {2} Dicts: actor={0} name={1} height={3} ra
} }
public void ProcessTaints(float timestep) public void ProcessTaints(float timestep)
{
lock (m_syncRoot)
{ {
if (m_tainted_isPhysical != m_isPhysical) if (m_tainted_isPhysical != m_isPhysical)
@ -1421,6 +1424,7 @@ Console.WriteLine("**** Create {2} Dicts: actor={0} name={1} height={3} ra
} }
} }
}
internal void AddCollisionFrameTime(int p) internal void AddCollisionFrameTime(int p)
{ {