From 870efeef01ad45f1e06bbe4479e5afa9986f3518 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 8 Nov 2018 21:37:19 +0100 Subject: core/state: remove lock (#18065) The lock in StateDB is useless. It's only held in Copy, but Copy is safe for concurrent use because all it does is read. --- core/state/statedb.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/core/state/statedb.go b/core/state/statedb.go index f0d7cdb6e..76e67d839 100644 --- a/core/state/statedb.go +++ b/core/state/statedb.go @@ -22,7 +22,6 @@ import ( "fmt" "math/big" "sort" - "sync" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" @@ -87,8 +86,6 @@ type StateDB struct { journal *journal validRevisions []revision nextRevisionId int - - lock sync.Mutex } // Create a new state from a given trie. @@ -496,9 +493,6 @@ func (db *StateDB) ForEachStorage(addr common.Address, cb func(key, value common // Copy creates a deep, independent copy of the state. // Snapshots of the copied state cannot be applied to the copy. func (self *StateDB) Copy() *StateDB { - self.lock.Lock() - defer self.lock.Unlock() - // Copy all the basic fields, initialize the memory ones state := &StateDB{ db: self.db, -- cgit