From 256bc5a14c3cb41da4b2e19b69ee8f79d02ec146 Mon Sep 17 00:00:00 2001 From: Michael Schurter Date: Fri, 29 Jun 2018 15:39:22 -0700 Subject: [PATCH] tr: don't lock for immutable fields --- client/allocrunnerv2/taskrunner/task_runner.go | 11 +++++++---- .../allocrunnerv2/taskrunner/task_runner_getters.go | 6 ------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/client/allocrunnerv2/taskrunner/task_runner.go b/client/allocrunnerv2/taskrunner/task_runner.go index cdbaa7ee5..be824b2dd 100644 --- a/client/allocrunnerv2/taskrunner/task_runner.go +++ b/client/allocrunnerv2/taskrunner/task_runner.go @@ -20,8 +20,10 @@ import ( ) type TaskRunner struct { - // allocID is immutable so store a copy to access without locks - allocID string + // allocID and taskName are immutable so store a copy to access without + // locks + allocID string + taskName string alloc *structs.Allocation allocLock sync.Mutex @@ -108,6 +110,7 @@ func NewTaskRunner(config *Config) (*TaskRunner, error) { clientConfig: config.ClientConfig, task: config.Task, taskDir: config.TaskDir, + taskName: config.Task.Name, envBuilder: envBuilder, state: config.State, ctx: trCtx, @@ -173,7 +176,7 @@ func (tr *TaskRunner) initLabels() { }, { Name: "task", - Value: tr.Name(), + Value: tr.taskName, }, } } @@ -303,7 +306,7 @@ func (tr *TaskRunner) initDriver() error { driverCtx := driver.NewDriverContext( alloc.Job.Name, alloc.TaskGroup, - tr.Name(), + tr.taskName, tr.allocID, tr.clientConfig, // XXX Why does it need this tr.clientConfig.Node, // XXX THIS I NEED TO FIX diff --git a/client/allocrunnerv2/taskrunner/task_runner_getters.go b/client/allocrunnerv2/taskrunner/task_runner_getters.go index 7c8e8c679..dd0a5ac20 100644 --- a/client/allocrunnerv2/taskrunner/task_runner_getters.go +++ b/client/allocrunnerv2/taskrunner/task_runner_getters.go @@ -2,12 +2,6 @@ package taskrunner import "github.com/hashicorp/nomad/nomad/structs" -func (tr *TaskRunner) Name() string { - tr.taskLock.RLock() - defer tr.taskLock.RUnlock() - return tr.task.Name -} - func (tr *TaskRunner) Task() *structs.Task { tr.taskLock.RLock() defer tr.taskLock.RUnlock()