public SMB2ConnectionClient CheckOut() { SMB2ConnectionClient client = null; if (_connections.TryTake(out client)) { NTStatus status = client.CurrentConnectionStatus(); Console.WriteLine($"XXXXXXXXXXXXXXXXX SMB2ConnectionSource.CheckOut Instance:{client.GetHashCode()} STATUS {status}"); if (client.IsConnected && status == NTStatus.STATUS_SUCCESS) { _count--; Console.WriteLine($"SMB2ConnectionSource.CheckOut Instance:{client.GetHashCode()} Client:{client.Key} IsConnected:{client.IsConnected} EXISTING:true"); return(client); } Console.WriteLine($"SMB2ConnectionSource.CheckOut - CLIENT WAS DOA"); } client = createNewClient(); Console.WriteLine($"SMB2ConnectionSource.CheckOut Instance:{client.GetHashCode()} Client:{client.Key} IsConnected:{client.IsConnected} EXISTING:false"); _connections.Add(client); _count++; return(client); }
public void CheckIn(SMB2ConnectionClient client) { if (_count < _maxConnections && client.IsConnected) { _connections.Add(client); _count++; } }