]> Cypherpunks repositories - gostls13.git/commit
runtime: restore old mp.fastrand initialization
authorIan Lance Taylor <iant@golang.org>
Tue, 8 Feb 2022 01:07:44 +0000 (17:07 -0800)
committerIan Lance Taylor <iant@golang.org>
Tue, 8 Feb 2022 22:26:40 +0000 (22:26 +0000)
commit5442f4d51b01fea94159b035ce5b5ca5834487e5
treee3209b70ac1d4b647ef8192cf46ba3e685719497
parent540632841e678573885e296db0cb73b15f48f96c
runtime: restore old mp.fastrand initialization

CL 337350 changed mp.fastrand from a [2]uint32 to a uint64 and changed
the initialization to a single call of int64Hash. However, int64Hash
returns uintptr, so 32-bit systems this always left the most
significant 32 bits of mp.fastrand initialized to 0. The new code also
did not protect against initializing mp.fastrand to 0, which on a
system that does not implement math.Mul64 (most 32-bit systems) would
lead fastrand to always return 0.

This CL restores the mp.fastrand initialization to what it was before
CL 337350, adjusted for the change from [2]uint32 to uint64.

Change-Id: I663b415d9424d967e8e665ce2d017604dcd5b204
Reviewed-on: https://go-review.googlesource.com/c/go/+/383916
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
src/runtime/proc.go