/// <summary> /// Registers item and returns true if it was registered, false if this named instance already existed in the list /// </summary> public bool Register(T item) { lock (m_Sync) { if (m_Data.ContainsKey(item.Name)) { return(false); } var data = new RegistryDictionary <T>(m_CaseSensitive, m_Data); data.Add(item.Name, item); JustRegistered(item); m_Data = data; //atomic } return(true); }
/// <summary> /// Registers item and returns true if it was registered, false if this named instance already existed in the list /// </summary> public bool Register(T item) { ((object)item).NonNull(nameof(item)); lock (m_Sync) { if (m_Data.ContainsKey(item.Name)) { return(false); } var data = new RegistryDictionary <T>(m_CaseSensitive, m_Data); data.Add(item.Name, item); JustRegistered(item); Thread.MemoryBarrier(); m_Data = data; //atomic } return(true); }