diff options
Diffstat (limited to 'OpenSim/Framework/Servers/ServerBase.cs')
-rw-r--r-- | OpenSim/Framework/Servers/ServerBase.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs index fd56587..379e224 100644 --- a/OpenSim/Framework/Servers/ServerBase.cs +++ b/OpenSim/Framework/Servers/ServerBase.cs | |||
@@ -29,6 +29,7 @@ using System; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Diagnostics; | 30 | using System.Diagnostics; |
31 | using System.IO; | 31 | using System.IO; |
32 | using System.Linq; | ||
32 | using System.Reflection; | 33 | using System.Reflection; |
33 | using System.Text; | 34 | using System.Text; |
34 | using System.Text.RegularExpressions; | 35 | using System.Text.RegularExpressions; |
@@ -292,6 +293,12 @@ namespace OpenSim.Framework.Servers | |||
292 | HandleDebugThreadpoolLevel); | 293 | HandleDebugThreadpoolLevel); |
293 | 294 | ||
294 | m_console.Commands.AddCommand( | 295 | m_console.Commands.AddCommand( |
296 | "Debug", false, "show threadpool calls", | ||
297 | "show threadpool calls", | ||
298 | "Show the number of labelled threadpool calls.", | ||
299 | HandleShowThreadpoolCalls); | ||
300 | |||
301 | m_console.Commands.AddCommand( | ||
295 | "Debug", false, "force gc", | 302 | "Debug", false, "force gc", |
296 | "force gc", | 303 | "force gc", |
297 | "Manually invoke runtime garbage collection. For debugging purposes", | 304 | "Manually invoke runtime garbage collection. For debugging purposes", |
@@ -354,6 +361,20 @@ namespace OpenSim.Framework.Servers | |||
354 | Notice("serialosdreq is now {0}", setSerializeOsdRequests); | 361 | Notice("serialosdreq is now {0}", setSerializeOsdRequests); |
355 | } | 362 | } |
356 | 363 | ||
364 | private void HandleShowThreadpoolCalls(string module, string[] args) | ||
365 | { | ||
366 | List<KeyValuePair<string, int>> calls = Util.GetFireAndForgetCallsMade().ToList(); | ||
367 | calls.Sort((kvp1, kvp2) => kvp2.Value.CompareTo(kvp1.Value)); | ||
368 | |||
369 | ConsoleDisplayList cdl = new ConsoleDisplayList(); | ||
370 | foreach (KeyValuePair<string, int> kvp in calls) | ||
371 | { | ||
372 | cdl.AddRow(kvp.Key, kvp.Value); | ||
373 | } | ||
374 | |||
375 | MainConsole.Instance.Output(cdl.ToString()); | ||
376 | } | ||
377 | |||
357 | private void HandleDebugThreadpoolStatus(string module, string[] args) | 378 | private void HandleDebugThreadpoolStatus(string module, string[] args) |
358 | { | 379 | { |
359 | int workerThreads, iocpThreads; | 380 | int workerThreads, iocpThreads; |