public void Release(IProtoBufConnection connection) { IProtoBufConnection removed; ReservedConnections.TryRemove(connection, out removed); AvailableConnections.Enqueue(connection); }
public IConnectionHandle Acquire() { IProtoBufConnection connection = null; while (connection == null) { if (AvailableConnections.TryDequeue(out connection)) { continue; } if (ReservedConnections.Count + AvailableConnections.Count < Configuration.ConnectionLimit) { connection = ConnectionFactory.GetConnection(); } } try { ReservedConnections[connection] = connection; } catch (Exception e) { Console.WriteLine(e); } return(new PooledConnectionHandle(this, connection)); }
public void Release(IProtoBufConnection connection) { ReservedLock.EnterWriteLock(); AvailableLock.EnterWriteLock(); ReservedConnections.Remove(connection); AvailableConnections.Enqueue(connection); AvailableLock.ExitWriteLock(); ReservedLock.ExitWriteLock(); }
public void Release( IProtoBufConnection connection ) { ReservedLock.EnterWriteLock(); AvailableLock.EnterWriteLock(); ReservedConnections.Remove( connection ); AvailableConnections.Enqueue( connection ); AvailableLock.ExitWriteLock(); ReservedLock.ExitWriteLock(); }
public IConnectionHandle Acquire() { IProtoBufConnection connection = null; do { AvailableLock.EnterUpgradeableReadLock(); if (AvailableConnections.Count > 0) { AvailableLock.EnterWriteLock(); connection = AvailableConnections.Dequeue(); AvailableLock.ExitWriteLock(); } AvailableLock.ExitUpgradeableReadLock(); if (connection == null) { continue; } ReservedLock.EnterWriteLock(); ReservedConnections.Add(connection); ReservedLock.ExitWriteLock(); } while (connection == null); return(new PooledConnectionHandle(this, connection)); }
public SingleConnectionHandle(IProtoBufConnection connection) { Connection = connection; }
public void Dispose() { Connection.Dispose(); Connection = null; }
public SingleConnectionHandle( IProtoBufConnection connection ) { Connection = connection; }
public PooledConnectionHandle(IConnectionPool pool, IProtoBufConnection connection) { Pool = pool; Connection = connection; }
public void Dispose() { Pool.Release(Connection); Pool = null; Connection = null; }
public PooledConnectionHandle( IConnectionPool pool, IProtoBufConnection connection ) { Pool = pool; Connection = connection; }
public void Dispose() { Pool.Release( Connection ); Pool = null; Connection = null; }
public void Release( IProtoBufConnection connection ) { IProtoBufConnection removed; ReservedConnections.TryRemove( connection, out removed ); AvailableConnections.Enqueue( connection ); }