...

Source file src/github.com/redis/go-redis/v9/internal/pool/pool_single.go

Documentation: github.com/redis/go-redis/v9/internal/pool

     1  package pool
     2  
     3  import "context"
     4  
     5  type SingleConnPool struct {
     6  	pool      Pooler
     7  	cn        *Conn
     8  	stickyErr error
     9  }
    10  
    11  var _ Pooler = (*SingleConnPool)(nil)
    12  
    13  func NewSingleConnPool(pool Pooler, cn *Conn) *SingleConnPool {
    14  	return &SingleConnPool{
    15  		pool: pool,
    16  		cn:   cn,
    17  	}
    18  }
    19  
    20  func (p *SingleConnPool) NewConn(ctx context.Context) (*Conn, error) {
    21  	return p.pool.NewConn(ctx)
    22  }
    23  
    24  func (p *SingleConnPool) CloseConn(cn *Conn) error {
    25  	return p.pool.CloseConn(cn)
    26  }
    27  
    28  func (p *SingleConnPool) Get(ctx context.Context) (*Conn, error) {
    29  	if p.stickyErr != nil {
    30  		return nil, p.stickyErr
    31  	}
    32  	return p.cn, nil
    33  }
    34  
    35  func (p *SingleConnPool) Put(ctx context.Context, cn *Conn) {}
    36  
    37  func (p *SingleConnPool) Remove(ctx context.Context, cn *Conn, reason error) {
    38  	p.cn = nil
    39  	p.stickyErr = reason
    40  }
    41  
    42  func (p *SingleConnPool) Close() error {
    43  	p.cn = nil
    44  	p.stickyErr = ErrClosed
    45  	return nil
    46  }
    47  
    48  func (p *SingleConnPool) Len() int {
    49  	return 0
    50  }
    51  
    52  func (p *SingleConnPool) IdleLen() int {
    53  	return 0
    54  }
    55  
    56  func (p *SingleConnPool) Stats() *Stats {
    57  	return &Stats{}
    58  }
    59  

View as plain text