node: call Stop in Node.Close method

This commit is contained in:
Janos Guljas 2019-02-06 12:01:08 +01:00
parent b4ac1d1c68
commit 1fa065089b

View file

@ -121,9 +121,27 @@ func New(conf *Config) (*Node, error) {
}, nil }, nil
} }
// Close releases resources acquired in Node constructor New. // Close stops the Node and releases resources acquired in
// Node constructor New.
func (n *Node) Close() error { func (n *Node) Close() error {
return n.accman.Close() var errs []error
// Terminate all subsystems and collect any errors
if err := n.Stop(); err != nil && err != ErrNodeStopped {
errs = append(errs, err)
}
if err := n.accman.Close(); err != nil {
errs = append(errs, err)
}
// Report any errors that might have occurred
switch len(errs) {
case 0:
return nil
case 1:
return errs[0]
default:
return fmt.Errorf("%v", errs)
}
} }
// Register injects a new service into the node's stack. The service created by // Register injects a new service into the node's stack. The service created by