public FileNodeSocketProxy GetProxy(URL url) { cacheLock.EnterUpgradeableReadLock(); try { FileNodeSocketProxy node; cache.TryGetValue(url, out node); if (node == null) { cacheLock.EnterWriteLock(); try { node = new FileNodeSocketProxy(url); cache.Add(url, node); } finally { cacheLock.ExitWriteLock(); } return node; } return node; } finally { cacheLock.ExitUpgradeableReadLock(); } }
public FileNodeSocketProxy GetProxy(URL url) { cacheLock.EnterUpgradeableReadLock(); try { FileNodeSocketProxy node; cache.TryGetValue(url, out node); if (node == null) { cacheLock.EnterWriteLock(); try { node = new FileNodeSocketProxy(url); cache.Add(url, node); } finally { cacheLock.ExitWriteLock(); } return(node); } return(node); } finally { cacheLock.ExitUpgradeableReadLock(); } }