37 lines
564 B
Go
37 lines
564 B
Go
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)
|
|
}
|