Fixed:
- ListenOsSignal handler now not in waitgroup. Before if all routines exited by itself (with DoNothingIfDone or DoNothingIfFail policies) waitgroup waits OS listener to complete
This commit is contained in:
parent
73b65fc197
commit
c86dd5f3d7
1 changed files with 4 additions and 4 deletions
|
@ -117,17 +117,17 @@ func (r *Rutina) ListenOsSignals(signals ...os.Signal) {
|
|||
if len(signals) == 0 {
|
||||
signals = []os.Signal{syscall.SIGINT, syscall.SIGTERM}
|
||||
}
|
||||
r.Go(func(ctx context.Context) error {
|
||||
go func() {
|
||||
sig := make(chan os.Signal, 1)
|
||||
signal.Notify(sig, signals...)
|
||||
r.log("starting OS signals listener")
|
||||
select {
|
||||
case s := <-sig:
|
||||
r.log("stopping by OS signal (%v)", s)
|
||||
case <-ctx.Done():
|
||||
r.Cancel()
|
||||
case <-r.ctx.Done():
|
||||
}
|
||||
return nil
|
||||
}, ShutdownIfDone, ShutdownIfFail)
|
||||
}()
|
||||
}
|
||||
|
||||
// Wait all routines and returns first error or nil if all routines completes without errors
|
||||
|
|
Loading…
Reference in a new issue