protected void LogPacketQueue() {
// Exceptions is enabled for legacy purposes
if(!ProtocolLog.Exceptions.Enabled && !ProtocolLog.Monitor.Enabled) {
return;
}
String top_string = String.Empty;
try {
top_string = _current_action.ToString();
}
catch {}
string sts = string.Empty;
if(_announce_thread != null) {
_announce_thread.Suspend();
while(_announce_thread.ThreadState != ThreadState.Suspended) {
Thread.Sleep(0);
}
try {
var st = new System.Diagnostics.StackTrace(_announce_thread, false);
sts = st.ToString();
} catch { }
_announce_thread.Resume();
}
ProtocolLog.Write(ProtocolLog.Monitor, String.Format(
"Packet Queue Average: {0} at {1}. Actual length: {2}\n\tTop most action: {3}\n\tStack: {4} ",
_packet_queue_exp_avg, DateTime.UtcNow, _packet_queue.Count, top_string, sts));
}