private NamespaceWatcher get(Object watcher, NamespaceWatcher newNamespaceWatcher) { var weakReference = new WeakReference<NamespaceWatcher>(newNamespaceWatcher); WeakReference<NamespaceWatcher> weakExistingValue = map.GetOrAdd(watcher, weakReference); NamespaceWatcher existingNamespaceWatcher; weakExistingValue.TryGetTarget(out existingNamespaceWatcher); return existingNamespaceWatcher ?? newNamespaceWatcher; }
private NamespaceWatcher get(Object watcher, NamespaceWatcher newNamespaceWatcher) { var weakReference = new WeakReference <NamespaceWatcher>(newNamespaceWatcher); WeakReference <NamespaceWatcher> weakExistingValue = map.GetOrAdd(watcher, weakReference); NamespaceWatcher existingNamespaceWatcher; weakExistingValue.TryGetTarget(out existingNamespaceWatcher); return(existingNamespaceWatcher ?? newNamespaceWatcher); }
public void clearWatcherReferences(Watcher watcher) { NamespaceWatcher namespaceWatcher = namespaceWatcherMap.remove(watcher); if (namespaceWatcher != null) { namespaceWatcher.Dispose(); } }