diff options
Diffstat (limited to 'model/job.go')
-rw-r--r-- | model/job.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/model/job.go b/model/job.go index 09d74aa09..a139b154c 100644 --- a/model/job.go +++ b/model/job.go @@ -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 } |