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
}