OpenSimMirror/OpenSim/Region/ClientStack/Linden
Justin Clark-Casey (justincc) ce8441132e Restore sending of OutPacket() for object kills removed in commit c7dd7b1.
OutPacket() must be called within the m_killRecord lock.  Otherwise the following event sequence is possible
1) LLClientView.ProcessEntityUpdates() passes the kill record check for a particular part suspends before OutPacket()
2) Another thread calls LLClientView.SendKillObject() to delete the same part and modifies the kill record
3) The same thread places the kill packet on the Task queue.
4) The earlier thread resumes and places the update packet on the Task queue after the kill packet.
This results in a ghost part in the sim that only goes away after client relog.
This commit also removes the unnecessary m_entityUpdates.SyncRoot locking in SendKillObject.
2011-11-11 22:37:57 +00:00
..
Caps Changes UpdateFlag in SOP to an enumeration of NONE, TERSE and FULL. 2011-11-02 14:59:00 -07:00
UDP Restore sending of OutPacket() for object kills removed in commit c7dd7b1. 2011-11-11 22:37:57 +00:00