From 0c8ef17cdbb855600c1305d15683043b97025e5b Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Mon, 19 Oct 2009 22:27:58 +0000 Subject: [PATCH] Abort attempts to upload appearance if we get disconnected in the meanwhile. git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3157 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse/AppearanceManager.cs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) 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