/// <summary>Enqueue a new reference to the given message into the internal message queue.</summary> void InnerEnqueueMesg(LogMessage lm) { if (lm == null) { return; } if (!mesgQueueIsFull && mesgQueueCount < mesgQueueSize) { if (useLocalMesgSeqNumGenerator) lm.SeqNum = localMesgSeqNumGenerator.Increment(); // enqueue the new message mesgQueue.Enqueue(lm.AddReference()); mesgQueueCount = mesgQueue.Count; if (NullMessageSeqNum != lm.SeqNum) queuedMesgSeqNumRange.lastSeqNumIn = lm.SeqNum; lm = null; } else { if (!mesgQueueIsFull) { mesgQueueIsFull = true; mesgQueueFullStartTime.SetToNow(); mesgQueueDroppedMesgCount = 0; } mesgQueueDroppedMesgCount++; mesgQueueTotalDroppedMesgCount++; } }