From 928b4bfba8f67d381ab627eb44c59cd4b3626e30 Mon Sep 17 00:00:00 2001 From: BurtonQin Date: Wed, 12 Feb 2020 17:50:32 +0800 Subject: [PATCH] Let Wallet call walletsNoLock to avoid double read lock --- accounts/manager.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/accounts/manager.go b/accounts/manager.go index 731d12ea30..6be081da37 100644 --- a/accounts/manager.go +++ b/accounts/manager.go @@ -141,6 +141,11 @@ func (am *Manager) Wallets() []Wallet { am.lock.RLock() defer am.lock.RUnlock() + return am.walletsNoLock() +} + +// Wallets without lock. +func (am *Manager) walletsNoLock() []Wallet { cpy := make([]Wallet, len(am.wallets)) copy(cpy, am.wallets) return cpy @@ -155,7 +160,7 @@ func (am *Manager) Wallet(url string) (Wallet, error) { if err != nil { return nil, err } - for _, wallet := range am.Wallets() { + for _, wallet := range am.walletsNoLock() { if wallet.URL() == parsed { return wallet, nil }