|
@@ -7,9 +7,10 @@ import (
|
|
|
)
|
|
|
|
|
|
type RunGroupQuiter struct {
|
|
|
- qchan chan os.Signal
|
|
|
- ctx context.Context
|
|
|
- cncl context.CancelFunc
|
|
|
+ qchan chan os.Signal
|
|
|
+ ctx context.Context
|
|
|
+ cncl context.CancelFunc
|
|
|
+ SignalNotifyFunc func(sig os.Signal)
|
|
|
}
|
|
|
|
|
|
func NewRunGroupQuiter(sig ...os.Signal) *RunGroupQuiter {
|
|
@@ -32,11 +33,14 @@ func (q *RunGroupQuiter) Run() error {
|
|
|
close(q.qchan)
|
|
|
return nil
|
|
|
}
|
|
|
- case <-q.qchan:
|
|
|
+ case sig := <-q.qchan:
|
|
|
{
|
|
|
if q.cncl != nil {
|
|
|
q.cncl()
|
|
|
}
|
|
|
+ if q.SignalNotifyFunc != nil {
|
|
|
+ q.SignalNotifyFunc(sig)
|
|
|
+ }
|
|
|
return nil
|
|
|
}
|
|
|
}
|