diff options
author | Justin Clark-Casey (justincc) | 2010-09-15 23:06:38 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2010-09-15 23:06:38 +0100 |
commit | 7383173d3d33b9aeb5e097b2bc55959ede822e94 (patch) | |
tree | 3a243c231f17dafcb850bcda845b1632c06368ee /bin/Castle.Core.dll | |
parent | Merge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff) | |
download | opensim-SC-7383173d3d33b9aeb5e097b2bc55959ede822e94.zip opensim-SC-7383173d3d33b9aeb5e097b2bc55959ede822e94.tar.gz opensim-SC-7383173d3d33b9aeb5e097b2bc55959ede822e94.tar.bz2 opensim-SC-7383173d3d33b9aeb5e097b2bc55959ede822e94.tar.xz |
extend m_entityUpdates.SyncRoot lock in LLClientView.ProcessEntityUpdates() to reduce scope for kill/update race conditions
This is necessary because it was still possible for an entity update packet to be constructed, the thread to pause, a kill to be sent on another thread, and then the original thread to resume and send the update
This would result in an update being received after a kill, which results in undeletable ghost objects until the viewer is relogged
Extending the lock looks okay since its only taken by kill, update and reprioritize, and both kill and update do not take further locks
However, evidence suggests that there is still a kill/update race somewhere
Diffstat (limited to 'bin/Castle.Core.dll')
0 files changed, 0 insertions, 0 deletions