Fixing a few compile errors in the previous commit

prioritization
John Hurliman 2009-10-06 02:50:59 -07:00
parent e7c877407f
commit 2519f071f2
14 changed files with 8 additions and 173 deletions

View File

@ -89,7 +89,6 @@ namespace OpenSim.Client.MXP.PacketHandler
m_clientThread.Name = "MXPThread"; m_clientThread.Name = "MXPThread";
m_clientThread.IsBackground = true; m_clientThread.IsBackground = true;
m_clientThread.Start(); m_clientThread.Start();
ThreadTracker.Add(m_clientThread);
} }
public void StartListener() public void StartListener()

View File

@ -27,6 +27,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
@ -109,9 +110,8 @@ namespace OpenSim.Framework.Servers
m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics); m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics);
m_periodicDiagnosticsTimer.Enabled = true; 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"; Thread.CurrentThread.Name = "ConsoleThread";
ThreadTracker.Add(Thread.CurrentThread);
ILoggerRepository repository = LogManager.GetRepository(); ILoggerRepository repository = LogManager.GetRepository();
IAppender[] appenders = repository.GetAppenders(); IAppender[] appenders = repository.GetAppenders();
@ -235,7 +235,7 @@ namespace OpenSim.Framework.Servers
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
List<Thread> threads = ThreadTracker.GetThreads(); ProcessThreadCollection threads = ThreadTracker.GetThreads();
if (threads == null) if (threads == null)
{ {
sb.Append("OpenSim thread tracking is only enabled in DEBUG mode."); sb.Append("OpenSim thread tracking is only enabled in DEBUG mode.");
@ -243,25 +243,10 @@ namespace OpenSim.Framework.Servers
else else
{ {
sb.Append(threads.Count + " threads are being tracked:" + Environment.NewLine); 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.Id + ", TotalProcessorTime: " + t.TotalProcessorTime + ", TimeRunning: " +
{ (DateTime.Now - t.StartTime) + ", Pri: " + t.CurrentPriority + ", State: " + t.ThreadState + Environment.NewLine);
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);
}
}
} }
} }
int workers = 0, ports = 0, maxWorkers = 0, maxPorts = 0; int workers = 0, ports = 0, maxWorkers = 0, maxPorts = 0;

View File

@ -41,7 +41,7 @@ namespace OpenSim.Framework.Tests
[Test] [Test]
public void DefaultThreadTrackerTest() public void DefaultThreadTrackerTest()
{ {
List<Thread> lThread = ThreadTracker.GetThreads(); System.Diagnostics.ProcessThreadCollection lThread = ThreadTracker.GetThreads();
/* /*
foreach (Thread t in lThread) foreach (Thread t in lThread)
@ -50,143 +50,7 @@ namespace OpenSim.Framework.Tests
} }
*/ */
Assert.That(lThread.Count == 1); Assert.That(lThread.Count > 0);
Assert.That(lThread[0].Name == "ThreadTrackerThread");
} }
/// <summary>
/// Validate that adding a thread to the thread tracker works
/// Validate that removing a thread from the thread tracker also works.
/// </summary>
[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<Thread> 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"));
}
}
/// <summary>
/// Test a dead thread removal by aborting it and setting it's last seen active date to 50 seconds
/// </summary>
[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<Thread> 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<Thread> 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<Thread> lThread = ThreadTracker.GetThreads();
Assert.That(lThread.Count == 1);
foreach (Thread tr in lThread)
{
Assert.That((tr.Name == "ThreadTrackerThread"));
}
}
/// <summary>
/// Worker thread 0
/// </summary>
/// <param name="o"></param>
public void run(object o)
{
while (running)
{
Thread.Sleep(5000);
}
}
/// <summary>
/// Worker thread 1
/// </summary>
/// <param name="o"></param>
public void run2(object o)
{
try
{
while (running2)
{
Thread.Sleep(5000);
}
}
catch (ThreadAbortException)
{
}
}
} }
} }

View File

@ -323,7 +323,6 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
httpThread.IsBackground = true; httpThread.IsBackground = true;
_finished = false; _finished = false;
httpThread.Start(); httpThread.Start();
ThreadTracker.Add(httpThread);
} }
/* /*

View File

@ -639,7 +639,6 @@ namespace OpenSim.Region.CoreModules.Scripting.XMLRPC
httpThread.IsBackground = true; httpThread.IsBackground = true;
_finished = false; _finished = false;
httpThread.Start(); httpThread.Start();
ThreadTracker.Add(httpThread);
} }
/* /*

View File

@ -345,7 +345,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
mapItemReqThread.Priority = ThreadPriority.BelowNormal; mapItemReqThread.Priority = ThreadPriority.BelowNormal;
mapItemReqThread.SetApartmentState(ApartmentState.MTA); mapItemReqThread.SetApartmentState(ApartmentState.MTA);
mapItemReqThread.Start(); mapItemReqThread.Start();
ThreadTracker.Add(mapItemReqThread);
} }
/// <summary> /// <summary>
@ -447,7 +446,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
// end gracefully // end gracefully
if (st.agentID == UUID.Zero) if (st.agentID == UUID.Zero)
{ {
ThreadTracker.Remove(mapItemReqThread);
break; break;
} }

View File

@ -901,7 +901,6 @@ namespace OpenSim.Region.Framework.Scenes
//m_heartbeatTimer.Elapsed += new ElapsedEventHandler(Heartbeat); //m_heartbeatTimer.Elapsed += new ElapsedEventHandler(Heartbeat);
if (HeartbeatThread != null) if (HeartbeatThread != null)
{ {
ThreadTracker.Remove(HeartbeatThread);
HeartbeatThread.Abort(); HeartbeatThread.Abort();
HeartbeatThread = null; HeartbeatThread = null;
} }
@ -910,7 +909,6 @@ namespace OpenSim.Region.Framework.Scenes
HeartbeatThread.SetApartmentState(ApartmentState.MTA); HeartbeatThread.SetApartmentState(ApartmentState.MTA);
HeartbeatThread.Name = string.Format("Heartbeat for region {0}", RegionInfo.RegionName); HeartbeatThread.Name = string.Format("Heartbeat for region {0}", RegionInfo.RegionName);
HeartbeatThread.Priority = ThreadPriority.AboveNormal; HeartbeatThread.Priority = ThreadPriority.AboveNormal;
ThreadTracker.Add(HeartbeatThread);
HeartbeatThread.Start(); HeartbeatThread.Start();
} }

View File

@ -360,7 +360,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
m_listener.Name = "IRCConnectorListenerThread"; m_listener.Name = "IRCConnectorListenerThread";
m_listener.IsBackground = true; m_listener.IsBackground = true;
m_listener.Start(); m_listener.Start();
ThreadTracker.Add(m_listener);
// This is the message order recommended by RFC 2812 // This is the message order recommended by RFC 2812
if (m_password != null) if (m_password != null)

View File

@ -152,7 +152,6 @@ namespace OpenSim.Region.OptionalModules.ContentManagement
m_thread.Name = "Content Management"; m_thread.Name = "Content Management";
m_thread.IsBackground = true; m_thread.IsBackground = true;
m_thread.Start(); m_thread.Start();
ThreadTracker.Add(m_thread);
m_state = State.NONE; m_state = State.NONE;
} }
} }

View File

@ -138,7 +138,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
EventQueueThread.Priority = MyThreadPriority; EventQueueThread.Priority = MyThreadPriority;
EventQueueThread.Name = "EventQueueManagerThread_" + ThreadCount; EventQueueThread.Name = "EventQueueManagerThread_" + ThreadCount;
EventQueueThread.Start(); EventQueueThread.Start();
ThreadTracker.Add(EventQueueThread);
// Look at this... Don't you wish everyone did that solid // Look at this... Don't you wish everyone did that solid
// coding everywhere? :P // coding everywhere? :P

View File

@ -97,7 +97,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
MaintenanceThreadThread.Name = "ScriptMaintenanceThread"; MaintenanceThreadThread.Name = "ScriptMaintenanceThread";
MaintenanceThreadThread.IsBackground = true; MaintenanceThreadThread.IsBackground = true;
MaintenanceThreadThread.Start(); MaintenanceThreadThread.Start();
ThreadTracker.Add(MaintenanceThreadThread);
} }
} }

View File

@ -142,7 +142,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
cmdHandlerThread.Priority = ThreadPriority.BelowNormal; cmdHandlerThread.Priority = ThreadPriority.BelowNormal;
cmdHandlerThread.IsBackground = true; cmdHandlerThread.IsBackground = true;
cmdHandlerThread.Start(); cmdHandlerThread.Start();
ThreadTracker.Add(cmdHandlerThread);
} }
} }

View File

@ -115,7 +115,6 @@ namespace OpenSim.TestSuite
m_td[pos].IsBackground = true; m_td[pos].IsBackground = true;
m_td[pos].Start(); m_td[pos].Start();
m_lBot.Add(pb); m_lBot.Add(pb);
ThreadTracker.Add(m_td[pos]);
} }
/// <summary> /// <summary>

View File

@ -149,7 +149,6 @@ namespace pCampBot
m_td[pos].IsBackground = true; m_td[pos].IsBackground = true;
m_td[pos].Start(); m_td[pos].Start();
m_lBot.Add(pb); m_lBot.Add(pb);
ThreadTracker.Add(m_td[pos]);
} }
/// <summary> /// <summary>