diff --git a/OpenMetaverse/AppearanceManager.cs b/OpenMetaverse/AppearanceManager.cs index 89f3b0a2..330f7bab 100644 --- a/OpenMetaverse/AppearanceManager.cs +++ b/OpenMetaverse/AppearanceManager.cs @@ -278,7 +278,11 @@ namespace OpenMetaverse /// /// Timer used for delaying rebake on changing outfit /// - Timer RebakeScheduleTimer; + private Timer RebakeScheduleTimer; + /// + /// Main appearance thread + /// + private Thread AppearanceThread; #endregion Private Members /// @@ -346,7 +350,7 @@ namespace OpenMetaverse } // This is the first time setting appearance, run through the entire sequence - Thread appearanceThread = new Thread( + AppearanceThread = new Thread( delegate() { bool success = true; @@ -417,9 +421,9 @@ namespace OpenMetaverse } } ); - appearanceThread.Name = "Appearance"; - appearanceThread.IsBackground = true; - appearanceThread.Start(); + AppearanceThread.Name = "Appearance"; + AppearanceThread.IsBackground = true; + AppearanceThread.Start(); } /// @@ -1903,6 +1907,16 @@ namespace OpenMetaverse RebakeScheduleTimer.Dispose(); RebakeScheduleTimer = null; } + + if (AppearanceThread != null) + { + if (AppearanceThread.IsAlive) + { + AppearanceThread.Abort(); + } + AppearanceThread = null; + AppearanceThreadRunning = 0; + } } #endregion Callbacks