public void SynchronizeChanges() { if (m_changes.Count == 0) { return; } LinkedList changes; m_changeLock.EnterUpgradeableReadLock(); try { changes = new LinkedList(m_changes); m_changeLock.EnterWriteLock(); foreach (StatChange change in changes) { change.CommitChange(m_owner); } m_changeLock.ExitWriteLock(); } finally { m_changeLock.ExitUpgradeableReadLock(); } }