public virtual void QueueEvent(EventFieldList fields) { lock (m_lock) { // make space in the queue. if (m_events.Count >= m_queueSize) { m_overflow = true; if (m_discardOldest) { m_events.RemoveAt(0); } } // queue the event. m_events.Add(fields); m_readyToPublish = true; m_readyToTrigger = true; } }