Add "threads abort <thread-id>" simulator console command that allows us to abort a watchdog managed thread.

This is for diagnostic purposes.
This commit is contained in:
Justin Clark-Casey (justincc)
2011-10-25 20:49:46 +01:00
parent 8a0a78cbcc
commit 968cae6c17
2 changed files with 48 additions and 2 deletions

View File

@@ -112,8 +112,10 @@ namespace OpenSim.Framework
/// <summary>
/// Stops watchdog tracking on the current thread
/// </summary>
/// <returns>True if the thread was removed from the list of tracked
/// threads, otherwise false</returns>
/// <returns>
/// True if the thread was removed from the list of tracked
/// threads, otherwise false
/// </returns>
public static bool RemoveThread()
{
return RemoveThread(Thread.CurrentThread.ManagedThreadId);
@@ -133,6 +135,25 @@ namespace OpenSim.Framework
return m_threads.Remove(threadID);
}
public static bool AbortThread(int threadID)
{
lock (m_threads)
{
if (m_threads.ContainsKey(threadID))
{
ThreadWatchdogInfo twi = m_threads[threadID];
twi.Thread.Abort();
RemoveThread(threadID);
return true;
}
else
{
return false;
}
}
}
private static void UpdateThread(int threadID)
{
ThreadWatchdogInfo threadInfo;