From 0e4e31197428a347842d152773b4cace4645ca25 Mon Sep 17 00:00:00 2001 From: Andrey Abramov Date: Thu, 2 Jul 2020 21:56:42 +0300 Subject: [PATCH] Fix race in NewUUID() (#64) * Fixed race in NewUUID() * Remove unnecessary variable --- version1.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/version1.go b/version1.go index 199a1ac..4631096 100644 --- a/version1.go +++ b/version1.go @@ -17,12 +17,6 @@ import ( // // In most cases, New should be used. func NewUUID() (UUID, error) { - nodeMu.Lock() - if nodeID == zeroID { - setNodeInterface("") - } - nodeMu.Unlock() - var uuid UUID now, seq, err := GetTime() if err != nil { @@ -38,7 +32,13 @@ func NewUUID() (UUID, error) { binary.BigEndian.PutUint16(uuid[4:], timeMid) binary.BigEndian.PutUint16(uuid[6:], timeHi) binary.BigEndian.PutUint16(uuid[8:], seq) + + nodeMu.Lock() + if nodeID == zeroID { + setNodeInterface("") + } copy(uuid[10:], nodeID[:]) + nodeMu.Unlock() return uuid, nil }