diff options
author | Oren Hurvitz | 2013-01-04 08:43:05 +0200 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-01-19 02:08:58 +0000 |
commit | b77da5039eba6db0f904bfa9ca0852d640436055 (patch) | |
tree | b32659f764de2ae0845c04a7ec530ed7939cc42e | |
parent | Explicitly stop PollServiceRequestManager() rather than relying on its destru... (diff) | |
download | opensim-SC-b77da5039eba6db0f904bfa9ca0852d640436055.zip opensim-SC-b77da5039eba6db0f904bfa9ca0852d640436055.tar.gz opensim-SC-b77da5039eba6db0f904bfa9ca0852d640436055.tar.bz2 opensim-SC-b77da5039eba6db0f904bfa9ca0852d640436055.tar.xz |
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.
-rw-r--r-- | OpenSim/Framework/Util.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 4 | ||||
-rw-r--r-- | ThirdParty/SmartThreadPool/STPStartInfo.cs | 14 | ||||
-rw-r--r-- | ThirdParty/SmartThreadPool/SmartThreadPool.cs | 8 |
4 files changed, 30 insertions, 5 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index f6c9d15..9b1e97d 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -1658,8 +1658,13 @@ namespace OpenSim.Framework | |||
1658 | if (m_ThreadPool != null) | 1658 | if (m_ThreadPool != null) |
1659 | throw new InvalidOperationException("SmartThreadPool is already initialized"); | 1659 | throw new InvalidOperationException("SmartThreadPool is already initialized"); |
1660 | 1660 | ||
1661 | m_ThreadPool = new SmartThreadPool(2000, maxThreads, 2); | 1661 | STPStartInfo startInfo = new STPStartInfo(); |
1662 | m_ThreadPool.Name = "Util"; | 1662 | startInfo.ThreadPoolName = "Util"; |
1663 | startInfo.IdleTimeout = 2000; | ||
1664 | startInfo.MaxWorkerThreads = maxThreads; | ||
1665 | startInfo.MinWorkerThreads = 2; | ||
1666 | |||
1667 | m_ThreadPool = new SmartThreadPool(startInfo); | ||
1663 | } | 1668 | } |
1664 | 1669 | ||
1665 | public static int FireAndForgetCount() | 1670 | public static int FireAndForgetCount() |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index a17a018..72646f6 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -1486,7 +1486,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1486 | m_MaxScriptQueue = maxScriptQueue; | 1486 | m_MaxScriptQueue = maxScriptQueue; |
1487 | 1487 | ||
1488 | STPStartInfo startInfo = new STPStartInfo(); | 1488 | STPStartInfo startInfo = new STPStartInfo(); |
1489 | startInfo.IdleTimeout = idleTimeout*1000; // convert to seconds as stated in .ini | 1489 | startInfo.ThreadPoolName = "XEngine"; |
1490 | startInfo.IdleTimeout = idleTimeout * 1000; // convert to seconds as stated in .ini | ||
1490 | startInfo.MaxWorkerThreads = maxThreads; | 1491 | startInfo.MaxWorkerThreads = maxThreads; |
1491 | startInfo.MinWorkerThreads = minThreads; | 1492 | startInfo.MinWorkerThreads = minThreads; |
1492 | startInfo.ThreadPriority = threadPriority;; | 1493 | startInfo.ThreadPriority = threadPriority;; |
@@ -1494,7 +1495,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1494 | startInfo.StartSuspended = true; | 1495 | startInfo.StartSuspended = true; |
1495 | 1496 | ||
1496 | m_ThreadPool = new SmartThreadPool(startInfo); | 1497 | m_ThreadPool = new SmartThreadPool(startInfo); |
1497 | m_ThreadPool.Name = "XEngine"; | ||
1498 | } | 1498 | } |
1499 | 1499 | ||
1500 | // | 1500 | // |
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 | |||
33 | private ThreadPriority _threadPriority; | 33 | private ThreadPriority _threadPriority; |
34 | 34 | ||
35 | /// <summary> | 35 | /// <summary> |
36 | /// The thread pool name. Threads will get names depending on this. | ||
37 | /// </summary> | ||
38 | private string _threadPoolName; | ||
39 | |||
40 | /// <summary> | ||
36 | /// If this field is not null then the performance counters are enabled | 41 | /// If this field is not null then the performance counters are enabled |
37 | /// and use the string as the name of the instance. | 42 | /// and use the string as the name of the instance. |
38 | /// </summary> | 43 | /// </summary> |
@@ -46,6 +51,7 @@ namespace Amib.Threading | |||
46 | _minWorkerThreads = SmartThreadPool.DefaultMinWorkerThreads; | 51 | _minWorkerThreads = SmartThreadPool.DefaultMinWorkerThreads; |
47 | _maxWorkerThreads = SmartThreadPool.DefaultMaxWorkerThreads; | 52 | _maxWorkerThreads = SmartThreadPool.DefaultMaxWorkerThreads; |
48 | _threadPriority = SmartThreadPool.DefaultThreadPriority; | 53 | _threadPriority = SmartThreadPool.DefaultThreadPriority; |
54 | _threadPoolName = SmartThreadPool.DefaultThreadPoolName; | ||
49 | _pcInstanceName = SmartThreadPool.DefaultPerformanceCounterInstanceName; | 55 | _pcInstanceName = SmartThreadPool.DefaultPerformanceCounterInstanceName; |
50 | _stackSize = SmartThreadPool.DefaultStackSize; | 56 | _stackSize = SmartThreadPool.DefaultStackSize; |
51 | } | 57 | } |
@@ -56,6 +62,7 @@ namespace Amib.Threading | |||
56 | _minWorkerThreads = stpStartInfo._minWorkerThreads; | 62 | _minWorkerThreads = stpStartInfo._minWorkerThreads; |
57 | _maxWorkerThreads = stpStartInfo._maxWorkerThreads; | 63 | _maxWorkerThreads = stpStartInfo._maxWorkerThreads; |
58 | _threadPriority = stpStartInfo._threadPriority; | 64 | _threadPriority = stpStartInfo._threadPriority; |
65 | _threadPoolName = stpStartInfo._threadPoolName; | ||
59 | _pcInstanceName = stpStartInfo._pcInstanceName; | 66 | _pcInstanceName = stpStartInfo._pcInstanceName; |
60 | _stackSize = stpStartInfo._stackSize; | 67 | _stackSize = stpStartInfo._stackSize; |
61 | } | 68 | } |
@@ -84,6 +91,13 @@ namespace Amib.Threading | |||
84 | set { _threadPriority = value; } | 91 | set { _threadPriority = value; } |
85 | } | 92 | } |
86 | 93 | ||
94 | public virtual string ThreadPoolName | ||
95 | { | ||
96 | get { return _threadPoolName; } | ||
97 | set { _threadPoolName = value; } | ||
98 | } | ||
99 | |||
100 | |||
87 | public string PerformanceCounterInstanceName | 101 | public string PerformanceCounterInstanceName |
88 | { | 102 | { |
89 | get { return _pcInstanceName; } | 103 | 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 | |||
135 | /// </summary> | 135 | /// </summary> |
136 | public const ThreadPriority DefaultThreadPriority = ThreadPriority.Normal; | 136 | public const ThreadPriority DefaultThreadPriority = ThreadPriority.Normal; |
137 | 137 | ||
138 | /// <summary> | ||
139 | /// The default thread pool name | ||
140 | /// </summary> | ||
141 | public const string DefaultThreadPoolName = "SmartThreadPool"; | ||
142 | |||
138 | #endregion | 143 | #endregion |
139 | 144 | ||
140 | #region Member Variables | 145 | #region Member Variables |
@@ -143,7 +148,7 @@ namespace Amib.Threading | |||
143 | /// Contains the name of this instance of SmartThreadPool. | 148 | /// Contains the name of this instance of SmartThreadPool. |
144 | /// Can be changed by the user. | 149 | /// Can be changed by the user. |
145 | /// </summary> | 150 | /// </summary> |
146 | private string _name = "SmartThreadPool"; | 151 | private string _name = DefaultThreadPoolName; |
147 | 152 | ||
148 | /// <summary> | 153 | /// <summary> |
149 | /// Hashtable of all the threads in the thread pool. | 154 | /// Hashtable of all the threads in the thread pool. |
@@ -307,6 +312,7 @@ namespace Amib.Threading | |||
307 | 312 | ||
308 | private void Initialize() | 313 | private void Initialize() |
309 | { | 314 | { |
315 | Name = _stpStartInfo.ThreadPoolName; | ||
310 | ValidateSTPStartInfo(); | 316 | ValidateSTPStartInfo(); |
311 | 317 | ||
312 | if (null != _stpStartInfo.PerformanceCounterInstanceName) | 318 | if (null != _stpStartInfo.PerformanceCounterInstanceName) |