aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorOren Hurvitz2013-11-27 14:15:21 +0200
committerOren Hurvitz2014-03-25 08:01:37 +0100
commit4031933475a8df81629862bfcdc497ac57d01223 (patch)
tree01fddd6cc3796ce0b8ae7df93bb4136e9e178fc6
parentAutomatically start logging FireAndForget activity if the threadpool is full (diff)
downloadopensim-SC-4031933475a8df81629862bfcdc497ac57d01223.zip
opensim-SC-4031933475a8df81629862bfcdc497ac57d01223.tar.gz
opensim-SC-4031933475a8df81629862bfcdc497ac57d01223.tar.bz2
opensim-SC-4031933475a8df81629862bfcdc497ac57d01223.tar.xz
Refactored DebugFlagsEnum
Resolves http://opensimulator.org/mantis/view.php?id=6945
-rw-r--r--OpenSim/Framework/Util.cs19
1 files changed, 14 insertions, 5 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 0dfee71..225d360 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -67,7 +67,7 @@ namespace OpenSim.Framework
67 // All does not contain Export, which is special and must be 67 // All does not contain Export, which is special and must be
68 // explicitly given 68 // explicitly given
69 All = (1 << 13) | (1 << 14) | (1 << 15) | (1 << 19) 69 All = (1 << 13) | (1 << 14) | (1 << 15) | (1 << 19)
70 } 70 }
71 71
72 /// <summary> 72 /// <summary>
73 /// The method used by Util.FireAndForget for asynchronously firing events 73 /// The method used by Util.FireAndForget for asynchronously firing events
@@ -109,6 +109,15 @@ namespace OpenSim.Framework
109 public int MaxConcurrentWorkItems { get; set; } 109 public int MaxConcurrentWorkItems { get; set; }
110 } 110 }
111 111
112 [Flags]
113 public enum DebugFlagsEnum : uint
114 {
115 None = 0,
116
117 // Log every invocation of a thread using the threadpool
118 LogThreadPool = 0x01
119 }
120
112 /// <summary> 121 /// <summary>
113 /// Miscellaneous utility functions 122 /// Miscellaneous utility functions
114 /// </summary> 123 /// </summary>
@@ -117,13 +126,13 @@ namespace OpenSim.Framework
117 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 126 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
118 127
119 /// <summary> 128 /// <summary>
120 /// Log every invocation of a thread using the threadpool. 129 /// Flags that enable additional debugging.
121 /// </summary> 130 /// </summary>
122 public static bool LogThreadPool { get; set; } 131 public static DebugFlagsEnum DebugFlags { get; set; }
123 132
124 static Util() 133 static Util()
125 { 134 {
126 LogThreadPool = false; 135 DebugFlags = DebugFlagsEnum.None;
127 } 136 }
128 137
129 private static uint nextXferID = 5000; 138 private static uint nextXferID = 5000;
@@ -1907,7 +1916,7 @@ namespace OpenSim.Framework
1907 { 1916 {
1908 WaitCallback realCallback; 1917 WaitCallback realCallback;
1909 1918
1910 bool loggingEnabled = LogThreadPool; 1919 bool loggingEnabled = (DebugFlags & DebugFlagsEnum.LogThreadPool) != 0;
1911 1920
1912 long threadFuncNum = Interlocked.Increment(ref nextThreadFuncNum); 1921 long threadFuncNum = Interlocked.Increment(ref nextThreadFuncNum);
1913 1922