From 2519f071f2c592aeea0414c8b2871e5df623271c Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Tue, 6 Oct 2009 02:50:59 -0700 Subject: Fixing a few compile errors in the previous commit --- OpenSim/Framework/Servers/BaseOpenSimServer.cs | 27 ++--- OpenSim/Framework/Tests/ThreadTrackerTests.cs | 140 +------------------------ 2 files changed, 8 insertions(+), 159 deletions(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs index 56155dd..8e58980 100644 --- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs +++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs @@ -27,6 +27,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Reflection; using System.Text; @@ -109,9 +110,8 @@ namespace OpenSim.Framework.Servers m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics); m_periodicDiagnosticsTimer.Enabled = true; - // Add ourselves to thread monitoring. This thread will go on to become the console listening thread + // This thread will go on to become the console listening thread Thread.CurrentThread.Name = "ConsoleThread"; - ThreadTracker.Add(Thread.CurrentThread); ILoggerRepository repository = LogManager.GetRepository(); IAppender[] appenders = repository.GetAppenders(); @@ -235,7 +235,7 @@ namespace OpenSim.Framework.Servers { StringBuilder sb = new StringBuilder(); - List threads = ThreadTracker.GetThreads(); + ProcessThreadCollection threads = ThreadTracker.GetThreads(); if (threads == null) { sb.Append("OpenSim thread tracking is only enabled in DEBUG mode."); @@ -243,25 +243,10 @@ namespace OpenSim.Framework.Servers else { sb.Append(threads.Count + " threads are being tracked:" + Environment.NewLine); - foreach (Thread t in threads) + foreach (ProcessThread t in threads) { - if (t.IsAlive) - { - sb.Append( - "ID: " + t.ManagedThreadId + ", Name: " + t.Name + ", Alive: " + t.IsAlive - + ", Pri: " + t.Priority + ", State: " + t.ThreadState + Environment.NewLine); - } - else - { - try - { - sb.Append("ID: " + t.ManagedThreadId + ", Name: " + t.Name + ", DEAD" + Environment.NewLine); - } - catch - { - sb.Append("THREAD ERROR" + Environment.NewLine); - } - } + sb.Append("ID: " + t.Id + ", TotalProcessorTime: " + t.TotalProcessorTime + ", TimeRunning: " + + (DateTime.Now - t.StartTime) + ", Pri: " + t.CurrentPriority + ", State: " + t.ThreadState + Environment.NewLine); } } int workers = 0, ports = 0, maxWorkers = 0, maxPorts = 0; diff --git a/OpenSim/Framework/Tests/ThreadTrackerTests.cs b/OpenSim/Framework/Tests/ThreadTrackerTests.cs index 15d5b73..7eb83e6 100644 --- a/OpenSim/Framework/Tests/ThreadTrackerTests.cs +++ b/OpenSim/Framework/Tests/ThreadTrackerTests.cs @@ -41,7 +41,7 @@ namespace OpenSim.Framework.Tests [Test] public void DefaultThreadTrackerTest() { - List lThread = ThreadTracker.GetThreads(); + System.Diagnostics.ProcessThreadCollection lThread = ThreadTracker.GetThreads(); /* foreach (Thread t in lThread) @@ -50,143 +50,7 @@ namespace OpenSim.Framework.Tests } */ - Assert.That(lThread.Count == 1); - Assert.That(lThread[0].Name == "ThreadTrackerThread"); + Assert.That(lThread.Count > 0); } - - /// - /// Validate that adding a thread to the thread tracker works - /// Validate that removing a thread from the thread tracker also works. - /// - [Test] - public void AddThreadToThreadTrackerTestAndRemoveTest() - { - Thread t = new Thread(run); - t.Name = "TestThread"; - t.Priority = ThreadPriority.BelowNormal; - t.IsBackground = true; - t.SetApartmentState(ApartmentState.MTA); - t.Start(); - ThreadTracker.Add(t); - - List lThread = ThreadTracker.GetThreads(); - - Assert.That(lThread.Count == 2); - - foreach (Thread tr in lThread) - { - Assert.That((tr.Name == "ThreadTrackerThread" || tr.Name == "TestThread")); - } - running = false; - ThreadTracker.Remove(t); - - lThread = ThreadTracker.GetThreads(); - - Assert.That(lThread.Count == 1); - - foreach (Thread tr in lThread) - { - Assert.That((tr.Name == "ThreadTrackerThread")); - } - - - } - - /// - /// Test a dead thread removal by aborting it and setting it's last seen active date to 50 seconds - /// - [Test] - public void DeadThreadTest() - { - Thread t = new Thread(run2); - t.Name = "TestThread"; - t.Priority = ThreadPriority.BelowNormal; - t.IsBackground = true; - t.SetApartmentState(ApartmentState.MTA); - t.Start(); - ThreadTracker.Add(t); - t.Abort(); - Thread.Sleep(5000); - ThreadTracker.m_Threads[1].LastSeenActive = DateTime.Now.Ticks - (50*10000000); - ThreadTracker.CleanUp(); - List lThread = ThreadTracker.GetThreads(); - - Assert.That(lThread.Count == 1); - - foreach (Thread tr in lThread) - { - Assert.That((tr.Name == "ThreadTrackerThread")); - } - } - - [Test] - public void UnstartedThreadTest() - { - Thread t = new Thread(run2); - t.Name = "TestThread"; - t.Priority = ThreadPriority.BelowNormal; - t.IsBackground = true; - t.SetApartmentState(ApartmentState.MTA); - ThreadTracker.Add(t); - ThreadTracker.m_Threads[1].LastSeenActive = DateTime.Now.Ticks - (50 * 10000000); - ThreadTracker.CleanUp(); - List lThread = ThreadTracker.GetThreads(); - - Assert.That(lThread.Count == 1); - - foreach (Thread tr in lThread) - { - Assert.That((tr.Name == "ThreadTrackerThread")); - } - } - - [Test] - public void NullThreadTest() - { - Thread t = null; - ThreadTracker.Add(t); - - List lThread = ThreadTracker.GetThreads(); - - Assert.That(lThread.Count == 1); - - foreach (Thread tr in lThread) - { - Assert.That((tr.Name == "ThreadTrackerThread")); - } - } - - - /// - /// Worker thread 0 - /// - /// - public void run(object o) - { - while (running) - { - Thread.Sleep(5000); - } - } - - /// - /// Worker thread 1 - /// - /// - public void run2(object o) - { - try - { - while (running2) - { - Thread.Sleep(5000); - } - - } - catch (ThreadAbortException) - { - } - } - } } -- cgit v1.1