Assign the SmartThreadPool name in the constructor

This is required because some threads are created in the constructor, so assigning the name afterwards would be too late.
This commit is contained in:
Oren Hurvitz
2013-01-04 08:43:05 +02:00
committed by Justin Clark-Casey (justincc)
parent 3eee991935
commit b77da5039e
4 changed files with 30 additions and 5 deletions

View File

@@ -32,6 +32,11 @@ namespace Amib.Threading
/// </summary>
private ThreadPriority _threadPriority;
/// <summary>
/// The thread pool name. Threads will get names depending on this.
/// </summary>
private string _threadPoolName;
/// <summary>
/// If this field is not null then the performance counters are enabled
/// and use the string as the name of the instance.
@@ -46,6 +51,7 @@ namespace Amib.Threading
_minWorkerThreads = SmartThreadPool.DefaultMinWorkerThreads;
_maxWorkerThreads = SmartThreadPool.DefaultMaxWorkerThreads;
_threadPriority = SmartThreadPool.DefaultThreadPriority;
_threadPoolName = SmartThreadPool.DefaultThreadPoolName;
_pcInstanceName = SmartThreadPool.DefaultPerformanceCounterInstanceName;
_stackSize = SmartThreadPool.DefaultStackSize;
}
@@ -56,6 +62,7 @@ namespace Amib.Threading
_minWorkerThreads = stpStartInfo._minWorkerThreads;
_maxWorkerThreads = stpStartInfo._maxWorkerThreads;
_threadPriority = stpStartInfo._threadPriority;
_threadPoolName = stpStartInfo._threadPoolName;
_pcInstanceName = stpStartInfo._pcInstanceName;
_stackSize = stpStartInfo._stackSize;
}
@@ -84,6 +91,13 @@ namespace Amib.Threading
set { _threadPriority = value; }
}
public virtual string ThreadPoolName
{
get { return _threadPoolName; }
set { _threadPoolName = value; }
}
public string PerformanceCounterInstanceName
{
get { return _pcInstanceName; }

View File

@@ -135,6 +135,11 @@ namespace Amib.Threading
/// </summary>
public const ThreadPriority DefaultThreadPriority = ThreadPriority.Normal;
/// <summary>
/// The default thread pool name
/// </summary>
public const string DefaultThreadPoolName = "SmartThreadPool";
#endregion
#region Member Variables
@@ -143,7 +148,7 @@ namespace Amib.Threading
/// Contains the name of this instance of SmartThreadPool.
/// Can be changed by the user.
/// </summary>
private string _name = "SmartThreadPool";
private string _name = DefaultThreadPoolName;
/// <summary>
/// Hashtable of all the threads in the thread pool.
@@ -307,6 +312,7 @@ namespace Amib.Threading
private void Initialize()
{
Name = _stpStartInfo.ThreadPoolName;
ValidateSTPStartInfo();
if (null != _stpStartInfo.PerformanceCounterInstanceName)