private CopyOnWriteList(CopyOnWriteList <T> other) { _backing = other._backing; if (_backing != null) { lock (((ICollection)_backing).SyncRoot) { _backing.AddRef(); } } }
private IList <DomObserverTarget> GetItemsForScope(DomObserverEventScope scope) { IList <DomObserverTarget> list; if (!_items.TryGetValue(scope, out list)) { // CopyOnWriteList for observers because it is possible new observers could be added in callbacks _items[scope] = list = new CopyOnWriteList <DomObserverTarget>(); } return(list); }
public bool HasSameBacking(CopyOnWriteList <T> other) { return(ReferenceEquals(other._backing, _backing)); }