func()

in gdbclient/internal/pool/pool.go [439:459]


func (p *ConnPool) reapStaleConns() int {
	brokenConns := make([]*ConnWebSocket, 0)

	p.connsMu.Lock()
restart:
	for i, cn := range p.conns {
		if p.isStaleConns(cn) {
			brokenConns = append(brokenConns, cn)
			p.conns = append(p.conns[:i], p.conns[i+1:]...)
			goto restart
		}
	}
	brokenConsLen := p.poolSize - len(p.conns)
	p.connsMu.Unlock()

	for _, cn := range brokenConns {
		internal.Logger.Debug("reap stale conn", zap.Time("time", time.Now()), zap.Stringer("str", cn))
		p.closeConn(cn)
	}
	return brokenConsLen
}