From 84a5a9b558fbe1a4d20d1be822eefa1fd504d8df Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Wed, 22 Aug 2012 14:36:23 -0700 Subject: [PATCH] time: avoid data race in abs Fixes #3967. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6460115 --- src/pkg/time/time.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pkg/time/time.go b/src/pkg/time/time.go index f898284621..ef966c3ef0 100644 --- a/src/pkg/time/time.go +++ b/src/pkg/time/time.go @@ -241,10 +241,10 @@ func (t Time) IsZero() bool { // It is called when computing a presentation property like Month or Hour. func (t Time) abs() uint64 { l := t.loc - if l == nil { - l = &utcLoc + // Avoid function calls when possible. + if l == nil || l == &localLoc { + l = l.get() } - // Avoid function call if we hit the local time cache. sec := t.sec + internalToUnix if l != &utcLoc { if l.cacheZone != nil && l.cacheStart <= sec && sec < l.cacheEnd { -- 2.48.1