コード例 #1
0
ファイル: NetworkTarget.cs プロジェクト: modulexcite/SQLoogle
        private void ReleaseCachedConnection(NetworkSender sender)
        {
            lock (currentSenderCache)
            {
                lock (openNetworkSenders)
                {
                    if (openNetworkSenders.Remove(sender))
                    {
                        // only remove it once
                        sender.Close(ex => { });
                    }
                }

                NetworkSender sender2;

                // make sure the current sender for this address is the one we want to remove
                if (currentSenderCache.TryGetValue(sender.Address, out sender2))
                {
                    if (ReferenceEquals(sender, sender2))
                    {
                        currentSenderCache.Remove(sender.Address);
                    }
                }
            }
        }