From a3531dec1aaafdcd22a70764cc512dd5666c75fc Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 26 Sep 2011 23:00:16 +0100 Subject: [PATCH] Add en_US culture setting to the async delete to inventory thread, to avoid any issues with float serialization with machines set to non en_US locales. Doing this to see if addresses inventory object deserialization problems in http://opensimulator.org/mantis/view.php?id=5708, though if it does I'm really surprised not to have seen it before now. Really need to go through and systematically set the culture for every timer and change all BeginInvoke calls to FireAndForget instead. But don't want to do something like that this close to a release. --- .../Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs index 342354257d..0ac3899dd4 100644 --- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs +++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs @@ -112,6 +112,11 @@ namespace OpenSim.Region.Framework.Scenes private void InventoryRunDeleteTimer(object sender, ElapsedEventArgs e) { m_log.Debug("[ASYNC DELETER]: Starting send to inventory loop"); + + // We must set appearance parameters in the en_US culture in order to avoid issues where values are saved + // in a culture where decimal points are commas and then reloaded in a culture which just treats them as + // number seperators. + Culture.SetCurrentCulture(); while (InventoryDeQueueAndDelete()) {