Refactor IAM Storage: Multi-File Backend & Unified Interface (#8102)
Refactor IAM Shutdown to use sync.Once for thread safety
This commit is contained in:
@@ -62,7 +62,8 @@ type IdentityAccessManagement struct {
|
|||||||
policyEngine *BucketPolicyEngine
|
policyEngine *BucketPolicyEngine
|
||||||
|
|
||||||
// background polling
|
// background polling
|
||||||
stopChan chan struct{}
|
stopChan chan struct{}
|
||||||
|
shutdownOnce sync.Once
|
||||||
|
|
||||||
// useStaticConfig indicates if the configuration was loaded from a static file
|
// useStaticConfig indicates if the configuration was loaded from a static file
|
||||||
useStaticConfig bool
|
useStaticConfig bool
|
||||||
@@ -251,12 +252,14 @@ func (iam *IdentityAccessManagement) pollIamConfigChanges(interval time.Duration
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (iam *IdentityAccessManagement) Shutdown() {
|
func (iam *IdentityAccessManagement) Shutdown() {
|
||||||
if iam.stopChan != nil {
|
iam.shutdownOnce.Do(func() {
|
||||||
close(iam.stopChan)
|
if iam.stopChan != nil {
|
||||||
}
|
close(iam.stopChan)
|
||||||
if iam.credentialManager != nil {
|
}
|
||||||
iam.credentialManager.Shutdown()
|
if iam.credentialManager != nil {
|
||||||
}
|
iam.credentialManager.Shutdown()
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// loadEnvironmentVariableCredentials loads AWS credentials from environment variables
|
// loadEnvironmentVariableCredentials loads AWS credentials from environment variables
|
||||||
|
|||||||
Reference in New Issue
Block a user