aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-07-11 16:24:52 +0000
committerJustin Clarke Casey2008-07-11 16:24:52 +0000
commitf7d9b0bab710693417fa653e3dcf26374c93d100 (patch)
tree0958369b6bcff431a630fbf84cd3f4320db9298e
parent* Put an info entry in the log if permissions are being bypassed (diff)
downloadopensim-SC-f7d9b0bab710693417fa653e3dcf26374c93d100.zip
opensim-SC-f7d9b0bab710693417fa653e3dcf26374c93d100.tar.gz
opensim-SC-f7d9b0bab710693417fa653e3dcf26374c93d100.tar.bz2
opensim-SC-f7d9b0bab710693417fa653e3dcf26374c93d100.tar.xz
* Move thread tracking code to base opensim server so that it's available for all servers (UGAIM as well as Region)
* This will work as long as those servers are actually registering any threads they use (does not include stuff plucked from the thread pool) * command is now "show threads" rather than threads
-rw-r--r--OpenSim/Framework/Servers/BaseOpenSimServer.cs37
-rw-r--r--OpenSim/Region/Application/OpenSim.cs28
2 files changed, 31 insertions, 34 deletions
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index dac784e..c61db33 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -26,9 +26,11 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections.Generic;
29using System.IO; 30using System.IO;
30using System.Reflection; 31using System.Reflection;
31using System.Text; 32using System.Text;
33using System.Threading;
32using System.Timers; 34using System.Timers;
33using log4net; 35using log4net;
34using OpenSim.Framework.Console; 36using OpenSim.Framework.Console;
@@ -47,7 +49,7 @@ namespace OpenSim.Framework.Servers
47 /// This will control a periodic log printout of the current 'show stats' (if they are active) for this 49 /// This will control a periodic log printout of the current 'show stats' (if they are active) for this
48 /// server. 50 /// server.
49 /// </summary> 51 /// </summary>
50 private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000); 52 private System.Timers.Timer m_periodicDiagnosticsTimer = new System.Timers.Timer(60 * 60 * 1000);
51 53
52 protected ConsoleBase m_console; 54 protected ConsoleBase m_console;
53 55
@@ -154,6 +156,7 @@ namespace OpenSim.Framework.Servers
154 if (m_stats != null) 156 if (m_stats != null)
155 Notice("show stats - show statistical information for this server"); 157 Notice("show stats - show statistical information for this server");
156 158
159 Notice("show threads - list tracked threads");
157 Notice("show uptime - show server startup time and uptime."); 160 Notice("show uptime - show server startup time and uptime.");
158 Notice("show version - show server version."); 161 Notice("show version - show server version.");
159 Notice("shutdown - shutdown the server.\n"); 162 Notice("shutdown - shutdown the server.\n");
@@ -193,14 +196,36 @@ namespace OpenSim.Framework.Servers
193 Notice(m_stats.Report()); 196 Notice(m_stats.Report());
194 } 197 }
195 break; 198 break;
199
200 case "threads":
201// m_console.Notice("THREAD", Process.GetCurrentProcess().Threads.Count + " threads running:");
202// int _tc = 0;
203
204// foreach (ProcessThread pt in Process.GetCurrentProcess().Threads)
205// {
206// _tc++;
207// m_console.Notice("THREAD", _tc + ": ID: " + pt.Id + ", Started: " + pt.StartTime.ToString() + ", CPU time: " + pt.TotalProcessorTime + ", Pri: " + pt.BasePriority.ToString() + ", State: " + pt.ThreadState.ToString());
208// }
209
210 List<Thread> threads = ThreadTracker.GetThreads();
211 if (threads == null)
212 {
213 Notice("Thread tracking is only enabled in DEBUG mode.");
214 }
215 else
216 {
217 int tc = 0;
218 Notice(threads.Count + " threads are being tracked:");
219 foreach (Thread t in threads)
220 {
221 tc++;
222 Notice(tc + ": ID: " + t.ManagedThreadId.ToString() + ", Name: " + t.Name + ", Alive: " + t.IsAlive.ToString() + ", Pri: " + t.Priority.ToString() + ", State: " + t.ThreadState.ToString());
223 }
224 }
225 break;
196 226
197 case "uptime": 227 case "uptime":
198 Notice(GetUptimeReport()); 228 Notice(GetUptimeReport());
199 /*
200 Notice("Time now is " + DateTime.Now);
201 Notice("Server has been running since " + m_startuptime.DayOfWeek + ", " + m_startuptime.ToString());
202 Notice("That is an elapsed time of " + (DateTime.Now - m_startuptime).ToString());
203 */
204 break; 229 break;
205 230
206 case "version": 231 case "version":
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 4afe37b..0616812 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -295,7 +295,6 @@ namespace OpenSim
295 m_console.Notice("show users - show info about connected users."); 295 m_console.Notice("show users - show info about connected users.");
296 m_console.Notice("show modules - shows info about loaded modules."); 296 m_console.Notice("show modules - shows info about loaded modules.");
297 m_console.Notice("show regions - show running region information."); 297 m_console.Notice("show regions - show running region information.");
298 m_console.Notice("threads - list threads");
299 m_console.Notice("config set section field value - set a config value"); 298 m_console.Notice("config set section field value - set a config value");
300 m_console.Notice("config get section field - get a config value"); 299 m_console.Notice("config get section field - get a config value");
301 m_console.Notice("config save - save OpenSim.ini"); 300 m_console.Notice("config save - save OpenSim.ini");
@@ -303,33 +302,6 @@ namespace OpenSim
303 ShowPluginCommandsHelp(CombineParams(cmdparams, 0), m_console); 302 ShowPluginCommandsHelp(CombineParams(cmdparams, 0), m_console);
304 break; 303 break;
305 304
306 case "threads":
307// m_console.Notice("THREAD", Process.GetCurrentProcess().Threads.Count + " threads running:");
308// int _tc = 0;
309
310// foreach (ProcessThread pt in Process.GetCurrentProcess().Threads)
311// {
312// _tc++;
313// m_console.Notice("THREAD", _tc + ": ID: " + pt.Id + ", Started: " + pt.StartTime.ToString() + ", CPU time: " + pt.TotalProcessorTime + ", Pri: " + pt.BasePriority.ToString() + ", State: " + pt.ThreadState.ToString());
314// }
315
316 List<Thread> threads = ThreadTracker.GetThreads();
317 if (threads == null)
318 {
319 m_console.Notice("THREAD", "Thread tracking is only enabled in DEBUG mode.");
320 }
321 else
322 {
323 int _tc = 0;
324 m_console.Notice("THREAD", threads.Count + " threads are being tracked:");
325 foreach (Thread t in threads)
326 {
327 _tc++;
328 m_console.Notice("THREAD", _tc + ": ID: " + t.ManagedThreadId.ToString() + ", Name: " + t.Name + ", Alive: " + t.IsAlive.ToString() + ", Pri: " + t.Priority.ToString() + ", State: " + t.ThreadState.ToString());
329 }
330 }
331
332 break;
333 case "save-xml": 305 case "save-xml":
334 m_log.Error("[CONSOLE]: PLEASE NOTE, save-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use save-xml2, please file a mantis detailing the reason."); 306 m_log.Error("[CONSOLE]: PLEASE NOTE, save-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use save-xml2, please file a mantis detailing the reason.");
335 307