Refactor IAM Storage: Multi-File Backend & Unified Interface (#8102)

Refactor IAM Shutdown to use sync.Once for thread safety
This commit is contained in:
Chris Lu
2026-01-23 20:27:22 -08:00
committed by GitHub
parent f6318edbc9
commit 81009c1a81

View File

@@ -62,7 +62,8 @@ type IdentityAccessManagement struct {
policyEngine *BucketPolicyEngine
// background polling
stopChan chan struct{}
stopChan chan struct{}
shutdownOnce sync.Once
// useStaticConfig indicates if the configuration was loaded from a static file
useStaticConfig bool
@@ -251,12 +252,14 @@ func (iam *IdentityAccessManagement) pollIamConfigChanges(interval time.Duration
}
func (iam *IdentityAccessManagement) Shutdown() {
if iam.stopChan != nil {
close(iam.stopChan)
}
if iam.credentialManager != nil {
iam.credentialManager.Shutdown()
}
iam.shutdownOnce.Do(func() {
if iam.stopChan != nil {
close(iam.stopChan)
}
if iam.credentialManager != nil {
iam.credentialManager.Shutdown()
}
})
}
// loadEnvironmentVariableCredentials loads AWS credentials from environment variables