package rpc import ( "sync" "github.com/TeaOSLab/EdgeHttpDNS/internal/configs" ) var sharedRPCClient *RPCClient var sharedLocker sync.Mutex func SharedRPC() (*RPCClient, error) { sharedLocker.Lock() defer sharedLocker.Unlock() config, err := configs.SharedAPIConfig() if err != nil { return nil, err } if sharedRPCClient == nil { client, err := NewRPCClient(config) if err != nil { return nil, err } sharedRPCClient = client return sharedRPCClient, nil } return sharedRPCClient, nil }