public virtual void Release(IPooledDbConnection connection)
        {
            if (connection == null)
            {
                return;
            }

            lock (sync) {
                if (freeConnections.Contains(connection))
                {
                    return;
                }

                if (connectionProvider.CheckConnection(connection, context.ConnectionSettings))
                {
                    freeConnections.Enqueue(connection);
                }
                connections.Remove(connection);
            }
            Shrink();
        }