From 0103c43697c98d4a3b64c9d0f955fcd456f7fa03 Mon Sep 17 00:00:00 2001 From: Jeff Ames Date: Thu, 21 Feb 2008 15:14:39 +0000 Subject: Update svn properties. --- OpenSim/Framework/ThreadTracker.cs | 212 ++++++++++++++++++------------------- 1 file changed, 106 insertions(+), 106 deletions(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/ThreadTracker.cs b/OpenSim/Framework/ThreadTracker.cs index 42e3879..2f6d70d 100644 --- a/OpenSim/Framework/ThreadTracker.cs +++ b/OpenSim/Framework/ThreadTracker.cs @@ -1,106 +1,106 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Text; -using System.Threading; - -namespace OpenSim.Framework -{ - public static class ThreadTracker - { - public static List m_Threads; - public static System.Threading.Thread ThreadTrackerThread; - private static readonly long ThreadTimeout = 30 * 10000000; - - static ThreadTracker() - { -#if DEBUG - m_Threads = new List(); - ThreadTrackerThread = new Thread(ThreadTrackerThreadLoop); - ThreadTrackerThread.Name = "ThreadTrackerThread"; - ThreadTrackerThread.IsBackground = true; - ThreadTrackerThread.Priority = System.Threading.ThreadPriority.BelowNormal; - ThreadTrackerThread.Start(); -#endif - } - - private static void ThreadTrackerThreadLoop() - { - while (true) - { - Thread.Sleep(5000); - CleanUp(); - } - } - - public static void Add(System.Threading.Thread thread) - { -#if DEBUG - lock (m_Threads) - { - ThreadTrackerItem tti = new ThreadTrackerItem(); - tti.Thread = thread; - tti.LastSeenActive = DateTime.Now.Ticks; - m_Threads.Add(tti); - } -#endif - } - - public static void Remove(System.Threading.Thread thread) - { -#if DEBUG - lock (m_Threads) - { - foreach (ThreadTrackerItem tti in new ArrayList(m_Threads)) - { - if (tti.Thread == thread) - m_Threads.Remove(tti); - } - } -#endif - } - - public static void CleanUp() - { - lock (m_Threads) - { - foreach (ThreadTrackerItem tti in new ArrayList(m_Threads)) - { - if (tti.Thread.IsAlive) - { - // Its active - tti.LastSeenActive = DateTime.Now.Ticks; - } - else - { - // Its not active -- if its expired then remove it - if (tti.LastSeenActive + ThreadTimeout < DateTime.Now.Ticks) - m_Threads.Remove(tti); - } - } - } - } - - public static List GetThreads() - { - if (m_Threads == null) - return null; - - List threads = new List(); - lock (m_Threads) - { - foreach (ThreadTrackerItem tti in new ArrayList(m_Threads)) - { - threads.Add(tti.Thread); - } - } - return threads; - } - - public class ThreadTrackerItem - { - public System.Threading.Thread Thread; - public long LastSeenActive; - } - } -} +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text; +using System.Threading; + +namespace OpenSim.Framework +{ + public static class ThreadTracker + { + public static List m_Threads; + public static System.Threading.Thread ThreadTrackerThread; + private static readonly long ThreadTimeout = 30 * 10000000; + + static ThreadTracker() + { +#if DEBUG + m_Threads = new List(); + ThreadTrackerThread = new Thread(ThreadTrackerThreadLoop); + ThreadTrackerThread.Name = "ThreadTrackerThread"; + ThreadTrackerThread.IsBackground = true; + ThreadTrackerThread.Priority = System.Threading.ThreadPriority.BelowNormal; + ThreadTrackerThread.Start(); +#endif + } + + private static void ThreadTrackerThreadLoop() + { + while (true) + { + Thread.Sleep(5000); + CleanUp(); + } + } + + public static void Add(System.Threading.Thread thread) + { +#if DEBUG + lock (m_Threads) + { + ThreadTrackerItem tti = new ThreadTrackerItem(); + tti.Thread = thread; + tti.LastSeenActive = DateTime.Now.Ticks; + m_Threads.Add(tti); + } +#endif + } + + public static void Remove(System.Threading.Thread thread) + { +#if DEBUG + lock (m_Threads) + { + foreach (ThreadTrackerItem tti in new ArrayList(m_Threads)) + { + if (tti.Thread == thread) + m_Threads.Remove(tti); + } + } +#endif + } + + public static void CleanUp() + { + lock (m_Threads) + { + foreach (ThreadTrackerItem tti in new ArrayList(m_Threads)) + { + if (tti.Thread.IsAlive) + { + // Its active + tti.LastSeenActive = DateTime.Now.Ticks; + } + else + { + // Its not active -- if its expired then remove it + if (tti.LastSeenActive + ThreadTimeout < DateTime.Now.Ticks) + m_Threads.Remove(tti); + } + } + } + } + + public static List GetThreads() + { + if (m_Threads == null) + return null; + + List threads = new List(); + lock (m_Threads) + { + foreach (ThreadTrackerItem tti in new ArrayList(m_Threads)) + { + threads.Add(tti.Thread); + } + } + return threads; + } + + public class ThreadTrackerItem + { + public System.Threading.Thread Thread; + public long LastSeenActive; + } + } +} -- cgit v1.1