mirror of
https://github.com/safing/portbase
synced 2025-09-02 10:40:39 +00:00
Fix shutdown bug in modules
This commit is contained in:
parent
2da792a08d
commit
5908ff3d0b
1 changed files with 8 additions and 7 deletions
|
@ -39,17 +39,18 @@ func Shutdown() error {
|
||||||
|
|
||||||
err := stopModules()
|
err := stopModules()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err.Error())
|
log.Errorf("modules: shutdown completed with error: %s", err)
|
||||||
return err
|
} else {
|
||||||
|
log.Info("modules: shutdown completed")
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info("modules: shutdown complete")
|
|
||||||
log.Shutdown()
|
log.Shutdown()
|
||||||
return nil
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func stopModules() error {
|
func stopModules() error {
|
||||||
var rep *report
|
var rep *report
|
||||||
|
var lastErr error
|
||||||
reports := make(chan *report)
|
reports := make(chan *report)
|
||||||
execCnt := 0
|
execCnt := 0
|
||||||
reportCnt := 0
|
reportCnt := 0
|
||||||
|
@ -88,7 +89,8 @@ func stopModules() error {
|
||||||
rep = <-reports
|
rep = <-reports
|
||||||
rep.module.inTransition.UnSet()
|
rep.module.inTransition.UnSet()
|
||||||
if rep.err != nil {
|
if rep.err != nil {
|
||||||
return fmt.Errorf("modules: could not stop module %s: %s", rep.module.Name, rep.err)
|
lastErr = rep.err
|
||||||
|
log.Warningf("modules: could not stop module %s: %s", rep.module.Name, rep.err)
|
||||||
}
|
}
|
||||||
reportCnt++
|
reportCnt++
|
||||||
rep.module.Stopped.Set()
|
rep.module.Stopped.Set()
|
||||||
|
@ -96,8 +98,7 @@ func stopModules() error {
|
||||||
|
|
||||||
// exit if done
|
// exit if done
|
||||||
if reportCnt == startedCnt {
|
if reportCnt == startedCnt {
|
||||||
return nil
|
return lastErr
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue