Skip to content

Commit ddcc146

Browse files
committed
[core] Ensure task class refresh cannot happen concurrently w/ matching
1 parent fa8b653 commit ddcc146

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

core/task/manager.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,21 @@ func (m *Manager) RemoveReposClasses(repoPath string) { //Currently unused
286286
}
287287

288288
func (m *Manager) RefreshClasses(taskClassesRequired []string) (err error) {
289+
log.WithField("taskClassesRequired", len(taskClassesRequired)).
290+
Debug("waiting to refresh task classes")
291+
defer utils.TimeTrackFunction(time.Now(), log.WithField("taskClassesRequired", len(taskClassesRequired)))
292+
293+
m.deployMu.Lock()
294+
defer m.deployMu.Unlock()
295+
296+
log.WithField("taskClassesRequired", len(taskClassesRequired)).
297+
Debug("cleaning up inactive task classes")
289298

290299
m.removeInactiveClasses()
291300

301+
log.WithField("taskClassesRequired", len(taskClassesRequired)).
302+
Debug("loading required task classes")
303+
292304
var taskClassList []*taskclass.Class
293305
taskClassList, err = getTaskClassList(taskClassesRequired)
294306
if err != nil {

0 commit comments

Comments
 (0)