From 9d8d59c4a2d224b48b9aed0edc525db6983b437b Mon Sep 17 00:00:00 2001 From: Ingo Oppermann Date: Fri, 15 Mar 2024 11:45:50 +0100 Subject: [PATCH] Fix concurrent accesses --- math/rand/rand.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/math/rand/rand.go b/math/rand/rand.go index 35fa7a37..5f81ad90 100644 --- a/math/rand/rand.go +++ b/math/rand/rand.go @@ -4,6 +4,7 @@ package rand import ( "math/rand" + "sync" "time" ) @@ -12,12 +13,17 @@ const ( CharsetNumbers = "1234567890" CharsetSymbols = "#@+*%&/<>[]()=?!$.,:;-_" - CharsetAll = CharsetLetters + CharsetNumbers + CharsetSymbols + CharsetAlphanumeric = CharsetLetters + CharsetNumbers + CharsetAll = CharsetLetters + CharsetNumbers + CharsetSymbols ) var seededRand *rand.Rand = rand.New(rand.NewSource(time.Now().UnixNano())) +var lock sync.Mutex func StringWithCharset(length int, charset string) string { + lock.Lock() + defer lock.Unlock() + b := make([]byte, length) for i := range b { b[i] = charset[seededRand.Intn(len(charset))] @@ -35,7 +41,7 @@ func StringNumbers(length int) string { } func StringAlphanumeric(length int) string { - return StringWithCharset(length, CharsetLetters+CharsetNumbers) + return StringWithCharset(length, CharsetAlphanumeric) } func String(length int) string {