package core import ( "fmt" "log" "sync" "google.golang.org/grpc" ) var conns = map[string]*grpc.ClientConn{} var connsLock sync.Mutex func AddConn(name string, conn *grpc.ClientConn) { connsLock.Lock() defer connsLock.Unlock() if oldConn, ok := conns[name]; ok { oldConn.Close() } conns[name] = conn } func PrintConns() { connsLock.Lock() defer connsLock.Unlock() report := "Current connections:\n" for name, conn := range conns { report += fmt.Sprintf(" %s %s -> %s\n", conn.GetState(), name, conn.Target()) } log.Print(report) }