public void UnSubscribeChildChange(string path, IZkChildListener listener) { lock (this) { _childListener.TryGetValue(path, out var childListeners); childListeners?.Remove(listener); _childListener[path] = childListeners; } }
public void UnsubscribeChildChanges(string path, IZkChildListener childListener) { lock (_childListener) { ConcurrentHashSet <IZkChildListener> listeners = _childListener.Get(path); if (listeners != null) { listeners.TryRemove(childListener); } } }
public List <string> SubscribeChildChange(string path, IZkChildListener listener) { lock (this) { _childListener.TryGetValue(path, out var childListeners); if (childListeners == null) { childListeners = new HashSet <IZkChildListener>(); } childListeners.Add(listener); _childListener[path] = childListeners; } return(Task.Run(async() => await WatchForChildren(path)).Result); }
public List <string> SubscribeChildChanges(string path, IZkChildListener listener) { lock (_childListener) { ConcurrentHashSet <IZkChildListener> listeners = _childListener.Get(path); if (listeners == null) { listeners = new ConcurrentHashSet <IZkChildListener>(); _childListener[path] = listeners; } listeners.Add(listener); } return(WatchForChilds(path)); }