Beispiel #1
0
        public void Release(IProtoBufConnection connection)
        {
            IProtoBufConnection removed;

            ReservedConnections.TryRemove(connection, out removed);
            AvailableConnections.Enqueue(connection);
        }
Beispiel #2
0
        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));
        }
Beispiel #6
0
 public SingleConnectionHandle(IProtoBufConnection connection)
 {
     Connection = connection;
 }
Beispiel #7
0
 public void Dispose()
 {
     Connection.Dispose();
     Connection = null;
 }
 public SingleConnectionHandle( IProtoBufConnection connection )
 {
     Connection = connection;
 }
 public void Dispose()
 {
     Connection.Dispose();
     Connection = null;
 }
 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;
 }
Beispiel #14
0
 public void Release( IProtoBufConnection connection )
 {
     IProtoBufConnection removed;
     ReservedConnections.TryRemove( connection, out removed );
     AvailableConnections.Enqueue( connection );
 }