From: cuiweixie Date: Sat, 27 Aug 2022 03:11:08 +0000 (+0800) Subject: hash: convert haveCastagnoli to atomic type X-Git-Tag: go1.20rc1~1266 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=134cd34c07862aa8618e25d1d1279b4fd127c512;p=gostls13.git hash: convert haveCastagnoli to atomic type Change-Id: I313fff5684d89ee737572d11b1b697c5575866a8 Reviewed-on: https://go-review.googlesource.com/c/go/+/426083 Reviewed-by: Keith Randall TryBot-Result: Gopher Robot Reviewed-by: Michael Pratt Run-TryBot: Keith Randall Auto-Submit: Keith Randall Reviewed-by: Keith Randall --- diff --git a/src/hash/crc32/crc32.go b/src/hash/crc32/crc32.go index 1a24d980cc..4fcb168e6e 100644 --- a/src/hash/crc32/crc32.go +++ b/src/hash/crc32/crc32.go @@ -78,7 +78,7 @@ var castagnoliTable *Table var castagnoliTable8 *slicing8Table var updateCastagnoli func(crc uint32, p []byte) uint32 var castagnoliOnce sync.Once -var haveCastagnoli uint32 +var haveCastagnoli atomic.Bool func castagnoliInit() { castagnoliTable = simpleMakeTable(Castagnoli) @@ -94,7 +94,7 @@ func castagnoliInit() { } } - atomic.StoreUint32(&haveCastagnoli, 1) + haveCastagnoli.Store(true) } // IEEETable is the table for the IEEE polynomial. @@ -208,7 +208,7 @@ func readUint32(b []byte) uint32 { // Update returns the result of adding the bytes in p to the crc. func Update(crc uint32, tab *Table, p []byte) uint32 { switch { - case atomic.LoadUint32(&haveCastagnoli) != 0 && tab == castagnoliTable: + case haveCastagnoli.Load() && tab == castagnoliTable: return updateCastagnoli(crc, p) case tab == IEEETable: // Unfortunately, because IEEETable is exported, IEEE may be used without a @@ -222,7 +222,7 @@ func Update(crc uint32, tab *Table, p []byte) uint32 { func (d *digest) Write(p []byte) (n int, err error) { switch { - case atomic.LoadUint32(&haveCastagnoli) != 0 && d.tab == castagnoliTable: + case haveCastagnoli.Load() && d.tab == castagnoliTable: d.crc = updateCastagnoli(d.crc, p) case d.tab == IEEETable: // We only create digest objects through New() which takes care of