func NewConnPool()

in gdbclient/internal/pool/pool.go [78:107]


func NewConnPool(opt *Options) *ConnPool {
	if os.Getenv("GO_CLIENT_TEST_URL") != "" {
		opt.GdbUrl = os.Getenv("GO_CLIENT_TEST_URL")
		internal.Logger.Info("GDB CLIENT IN TEST MODE")
	}

	p := &ConnPool{
		opt:      opt,
		conns:    make([]*ConnWebSocket, 0, opt.PoolSize),
		poolSize: opt.PoolSize,

		_closed:          0,
		_opening:         0,
		closedCh:         make(chan struct{}),
		checkCh:          make(chan struct{}),
		hasAvailableConn: make(chan struct{}),

		maxSimultaneousUsagePerConn: opt.MaxSimultaneousUsagePerConn,
	}

	p.addConns()
	if opt.AliveCheckInterval > 0 {
		go p.checker(p.opt.AliveCheckInterval)
	}

	internal.Logger.Info("create pool", zap.Int("size", p.poolSize),
		zap.Duration("get timeout", opt.PoolTimeout), zap.Duration("alive freq", opt.AliveCheckInterval),
		zap.Duration("conn max age", opt.MaxConnAge))
	return p
}