diff options
author | Justin Clark-Casey (justincc) | 2011-11-02 18:12:12 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-11-02 18:25:03 +0000 |
commit | 03993d0b14599358ac30a001cebd5b2145881c65 (patch) | |
tree | bb875b81821c0dff0bf195d530ad2f2dda96b2d0 /OpenSim/Region/RegionCombinerModule/RegionCombinerClientEventForwarder.cs | |
parent | Catch any exceptions exiting the top of the robust console, as we already do ... (diff) | |
download | opensim-SC_OLD-03993d0b14599358ac30a001cebd5b2145881c65.zip opensim-SC_OLD-03993d0b14599358ac30a001cebd5b2145881c65.tar.gz opensim-SC_OLD-03993d0b14599358ac30a001cebd5b2145881c65.tar.bz2 opensim-SC_OLD-03993d0b14599358ac30a001cebd5b2145881c65.tar.xz |
Fix race condition that would sometimes send or save appearance for the wrong avatar.
In AvatarFactoryModule.HandleAppearanceUpdateTimer(), we loop through appearance save and send requests and dispatch via a FireAndForget thread.
If there was more than one request in the save or send queue, then this led to a subtle race condition where the foreach loop would load in the next KeyValuePair before the thread was dispatched.
This gave the thread the wrong avatar ID, leaving some avatar appearance cloudy since appearance data was never sent.
This change loads the fields into local references so that this doesn't happen.
Diffstat (limited to 'OpenSim/Region/RegionCombinerModule/RegionCombinerClientEventForwarder.cs')
0 files changed, 0 insertions, 0 deletions