func()

in azureappconfiguration/keyvault.go [97:115]


func (r *keyVaultReferenceResolver) getSecretClient(vaultURL string) (secretClient, error) {
	if client, ok := r.clients.Load(vaultURL); ok {
		return client.(secretClient), nil
	}

	client, err := azsecrets.NewClient(vaultURL, r.credential, nil)
	if err != nil {
		return nil, fmt.Errorf("failed to create Key Vault client: %w", err)
	}

	// Store the client - if concurrent call already stored a client, use the existing one
	storedClient, loaded := r.clients.LoadOrStore(vaultURL, client)
	if loaded {
		// Another goroutine already created and stored a client
		return storedClient.(secretClient), nil
	}

	return client, nil
}