Skip to content

Commit ada23aa

Browse files
fix: polling manager was blocking forever while using onDecisionUpdate (#143)
1 parent 7431ccf commit ada23aa

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

pkg/config/polling_manager.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,13 @@ func (cm *PollingProjectConfigManager) SyncConfig(datafile []byte) {
100100
projectConfig, err := datafileprojectconfig.NewDatafileProjectConfig(datafile)
101101

102102
cm.configLock.Lock()
103-
defer func() {
103+
closeMutex := func() {
104104
cm.err = err
105105
cm.configLock.Unlock()
106-
}()
106+
}
107107
if err != nil {
108108
cmLogger.Error("failed to create project config", err)
109+
closeMutex()
109110
return
110111
}
111112

@@ -115,10 +116,12 @@ func (cm *PollingProjectConfigManager) SyncConfig(datafile []byte) {
115116
}
116117
if projectConfig.GetRevision() == previousRevision {
117118
cmLogger.Debug(fmt.Sprintf("No datafile updates. Current revision number: %s", cm.projectConfig.GetRevision()))
119+
closeMutex()
118120
return
119121
}
120122
cmLogger.Debug(fmt.Sprintf("New datafile set with revision: %s. Old revision: %s", projectConfig.GetRevision(), previousRevision))
121123
cm.projectConfig = projectConfig
124+
closeMutex()
122125

123126
if cm.notificationCenter != nil {
124127
projectConfigUpdateNotification := notification.ProjectConfigUpdateNotification{

0 commit comments

Comments
 (0)