Skip to content

Commit

Permalink
Revert "accounts: use atomic type (ethereum#27857)"
Browse files Browse the repository at this point in the history
This reverts commit 13f88de.
  • Loading branch information
devopsbo3 committed Nov 10, 2023
1 parent 76d1dd8 commit 523f23d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
6 changes: 3 additions & 3 deletions accounts/keystore/keystore_test.go
Expand Up @@ -397,19 +397,19 @@ func TestImportRace(t *testing.T) {
t.Fatalf("failed to export account: %v", acc)
}
_, ks2 := tmpKeyStore(t, true)
var atom atomic.Uint32
var atom uint32
var wg sync.WaitGroup
wg.Add(2)
for i := 0; i < 2; i++ {
go func() {
defer wg.Done()
if _, err := ks2.Import(json, "new", "new"); err != nil {
atom.Add(1)
atomic.AddUint32(&atom, 1)
}
}()
}
wg.Wait()
if atom.Load() != 1 {
if atom != 1 {
t.Errorf("Import is racy")
}
}
Expand Down
12 changes: 6 additions & 6 deletions accounts/usbwallet/hub.go
Expand Up @@ -63,9 +63,9 @@ type Hub struct {
stateLock sync.RWMutex // Protects the internals of the hub from racey access

// TODO(karalabe): remove if hotplug lands on Windows
commsPend int // Number of operations blocking enumeration
commsLock sync.Mutex // Lock protecting the pending counter and enumeration
enumFails atomic.Uint32 // Number of times enumeration has failed
commsPend int // Number of operations blocking enumeration
commsLock sync.Mutex // Lock protecting the pending counter and enumeration
enumFails uint32 // Number of times enumeration has failed
}

// NewLedgerHub creates a new hardware wallet manager for Ledger devices.
Expand Down Expand Up @@ -151,7 +151,7 @@ func (hub *Hub) refreshWallets() {
return
}
// If USB enumeration is continually failing, don't keep trying indefinitely
if hub.enumFails.Load() > 2 {
if atomic.LoadUint32(&hub.enumFails) > 2 {
return
}
// Retrieve the current list of USB wallet devices
Expand All @@ -172,7 +172,7 @@ func (hub *Hub) refreshWallets() {
}
infos, err := usb.Enumerate(hub.vendorID, 0)
if err != nil {
failcount := hub.enumFails.Add(1)
failcount := atomic.AddUint32(&hub.enumFails, 1)
if runtime.GOOS == "linux" {
// See rationale before the enumeration why this is needed and only on Linux.
hub.commsLock.Unlock()
Expand All @@ -181,7 +181,7 @@ func (hub *Hub) refreshWallets() {
"vendor", hub.vendorID, "failcount", failcount, "err", err)
return
}
hub.enumFails.Store(0)
atomic.StoreUint32(&hub.enumFails, 0)

for _, info := range infos {
for _, id := range hub.productIDs {
Expand Down

0 comments on commit 523f23d

Please sign in to comment.