diff --git a/src/history_logger.go b/src/history_logger.go index 928390f..f4e5fc2 100644 --- a/src/history_logger.go +++ b/src/history_logger.go @@ -12,6 +12,7 @@ type JobHistoryLogger struct { jobStatus JobStatus resources []NodeStatus killedFlag bool + mu sync.Mutex } var jobHistoryLoggerInstance *JobHistoryLogger @@ -35,12 +36,16 @@ func (jhl *JobHistoryLogger) init() { } func (jhl *JobHistoryLogger) submitJob(job Job) { + jhl.mu.Lock() + defer jhl.mu.Unlock() log.Debug("submit job", job.Name) jhl.jobs[job.Name] = job jhl.tasks[job.Name] = []TaskStatus{} } func (jhl *JobHistoryLogger) updateJobStatus(jobName string, state State) { + jhl.mu.Lock() + defer jhl.mu.Unlock() log.Debug("update job status", jobName) if job, ok := jhl.jobs[jobName]; ok { job.Status = state @@ -48,6 +53,8 @@ func (jhl *JobHistoryLogger) updateJobStatus(jobName string, state State) { } func (jhl *JobHistoryLogger) submitTaskStatus(jobName string, task TaskStatus) { + jhl.mu.Lock() + defer jhl.mu.Unlock() log.Debug("submit job task status", jobName) if tasks, ok := jhl.tasks[jobName]; ok { jhl.tasks[jobName] = append(tasks, task) @@ -55,6 +62,8 @@ func (jhl *JobHistoryLogger) submitTaskStatus(jobName string, task TaskStatus) { } func (jhl *JobHistoryLogger) getTaskStatus(jobName string) []TaskStatus { + jhl.mu.Lock() + defer jhl.mu.Unlock() if _, ok := jhl.tasks[jobName]; ok { return jhl.tasks[jobName] }