From b77da5039eba6db0f904bfa9ca0852d640436055 Mon Sep 17 00:00:00 2001
From: Oren Hurvitz
Date: Fri, 4 Jan 2013 08:43:05 +0200
Subject: 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.
---
 ThirdParty/SmartThreadPool/STPStartInfo.cs    | 14 ++++++++++++++
 ThirdParty/SmartThreadPool/SmartThreadPool.cs |  8 +++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

(limited to 'ThirdParty')

diff --git a/ThirdParty/SmartThreadPool/STPStartInfo.cs b/ThirdParty/SmartThreadPool/STPStartInfo.cs
index d181563..fa9ceb4 100644
--- a/ThirdParty/SmartThreadPool/STPStartInfo.cs
+++ b/ThirdParty/SmartThreadPool/STPStartInfo.cs
@@ -33,6 +33,11 @@ namespace Amib.Threading
         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.
         /// </summary>
@@ -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; }
diff --git a/ThirdParty/SmartThreadPool/SmartThreadPool.cs b/ThirdParty/SmartThreadPool/SmartThreadPool.cs
index bd52f62..19a0007 100644
--- a/ThirdParty/SmartThreadPool/SmartThreadPool.cs
+++ b/ThirdParty/SmartThreadPool/SmartThreadPool.cs
@@ -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)
-- 
cgit v1.1