in monitored_cache.go [87:111]
func (c *monitoredCache) Close() error {
c.mu.Lock()
defer c.mu.Unlock()
if c.closed {
return nil
}
c.closed = true
close(c.closedCh)
if c.domainNameTicker != nil {
c.domainNameTicker.Stop()
}
if atomic.LoadUint64(c.openConnsCount) > 0 {
for _, socket := range c.openConns {
if !socket.isClosed() {
_ = socket.Close() // force socket closed, ok to ignore error.
}
}
atomic.StoreUint64(c.openConnsCount, 0)
}
return c.connectionInfoCache.Close()
}