mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
node: close AccountsManager in new Close method
This commit is contained in:
parent
7c60d0a6a2
commit
e582efd782
1 changed files with 26 additions and 9 deletions
35
node/node.go
35
node/node.go
|
|
@ -121,6 +121,32 @@ func New(conf *Config) (*Node, error) {
|
|||
}, nil
|
||||
}
|
||||
|
||||
// Close releases resources acquired in Node constructor New.
|
||||
func (n *Node) Close() error {
|
||||
n.lock.Lock()
|
||||
defer n.lock.Unlock()
|
||||
|
||||
// Close account manager
|
||||
var accmanErr error
|
||||
if n.accman != nil {
|
||||
accmanErr = n.accman.Close()
|
||||
if accmanErr == nil {
|
||||
n.accman = nil
|
||||
}
|
||||
}
|
||||
|
||||
// Remove the keystore if it was created ephemerally.
|
||||
var keystoreErr error
|
||||
if n.ephemeralKeystore != "" {
|
||||
keystoreErr = os.RemoveAll(n.ephemeralKeystore)
|
||||
}
|
||||
|
||||
if accmanErr != nil {
|
||||
return accmanErr
|
||||
}
|
||||
return keystoreErr
|
||||
}
|
||||
|
||||
// Register injects a new service into the node's stack. The service created by
|
||||
// the passed constructor must be unique in its type with regard to sibling ones.
|
||||
func (n *Node) Register(constructor ServiceConstructor) error {
|
||||
|
|
@ -435,18 +461,9 @@ func (n *Node) Stop() error {
|
|||
// unblock n.Wait
|
||||
close(n.stop)
|
||||
|
||||
// Remove the keystore if it was created ephemerally.
|
||||
var keystoreErr error
|
||||
if n.ephemeralKeystore != "" {
|
||||
keystoreErr = os.RemoveAll(n.ephemeralKeystore)
|
||||
}
|
||||
|
||||
if len(failure.Services) > 0 {
|
||||
return failure
|
||||
}
|
||||
if keystoreErr != nil {
|
||||
return keystoreErr
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue