Fixing race conditions in the code base (#5966)

* Adding initial race detector

* Remove setting of config twice

* Fixing config file watch and config reload on license save

* Fixing config file watch and config reload on license save

* Fixing build error

* Fixing locking issue

* Fixing makefile

* Fixing race in config

* Fixing race in status unit test

* Adding EE race tests

* Fixing race in cluster info

* Removing code that's isn't needed

* Fixing some more races

* Fixing govet issue
Этот коммит содержится в:
Corey Hulen
2017-04-04 11:42:07 -07:00
коммит произвёл Harrison Healey
родитель 32460bf63b
Коммит 6bf080393d
26 изменённых файлов: 1438 добавлений и 207 удалений

Просмотреть файл

@@ -5,6 +5,7 @@ package model
import (
"fmt"
"sync"
"time"
)
@@ -18,17 +19,24 @@ type ScheduledTask struct {
timer *time.Timer
}
var taskMutex = sync.Mutex{}
var tasks = make(map[string]*ScheduledTask)
func addTask(task *ScheduledTask) {
taskMutex.Lock()
defer taskMutex.Unlock()
tasks[task.Name] = task
}
func removeTaskByName(name string) {
taskMutex.Lock()
defer taskMutex.Unlock()
delete(tasks, name)
}
func GetTaskByName(name string) *ScheduledTask {
taskMutex.Lock()
defer taskMutex.Unlock()
if task, ok := tasks[name]; ok {
return task
}
@@ -36,6 +44,8 @@ func GetTaskByName(name string) *ScheduledTask {
}
func GetAllTasks() *map[string]*ScheduledTask {
taskMutex.Lock()
defer taskMutex.Unlock()
return &tasks
}