aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules/World/NPC
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-05-14 18:36:26 +0100
committerJustin Clark-Casey (justincc)2012-05-14 18:36:26 +0100
commitc2aa3b90d9d367bcaeba93352ef6b0f513e663f7 (patch)
treeda532e0b514f7f7b143db0a7f9cc0731ae02112f /OpenSim/Region/OptionalModules/World/NPC
parentMerge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff)
downloadopensim-SC-c2aa3b90d9d367bcaeba93352ef6b0f513e663f7.zip
opensim-SC-c2aa3b90d9d367bcaeba93352ef6b0f513e663f7.tar.gz
opensim-SC-c2aa3b90d9d367bcaeba93352ef6b0f513e663f7.tar.bz2
opensim-SC-c2aa3b90d9d367bcaeba93352ef6b0f513e663f7.tar.xz
Set the agent in transit teleport flag at the first available opportunity (i.e. when IsInTransit() was being checked) to close down a race condition.
On EntityTransferModule.DoTeleport() there was an IsInTransit() check to prevent multiple simultaneous teleport attempts. However, the SetInTransit() was only performed later on, which left a window in which multiple threads could pass the IsInTransit() check. This has been seen in the field and the results aren't pretty. This commit effectively combines the IsInTransit() and SetInTransit() checks so there is no such window. More failure cases are made to to call ResetInTransit() to adjust to this move.
Diffstat (limited to 'OpenSim/Region/OptionalModules/World/NPC')
0 files changed, 0 insertions, 0 deletions