代码拉取完成,页面将自动刷新
package grace
import (
"context"
"os"
"os/signal"
"sync"
)
type Grace struct {
process context.Context
cancel func()
wg sync.WaitGroup
}
func New() *Grace {
c, cancelFunc := context.WithCancel(context.Background())
g := &Grace{
process: c,
cancel: cancelFunc,
}
return g
}
func (g *Grace) Notify(signals ...os.Signal) {
g.process, g.cancel = signal.NotifyContext(g.process, signals...)
}
func (g *Grace) Start(f func(context.Context)) {
g.wg.Add(1)
go func() {
defer g.wg.Done()
f(g.process)
}()
}
func (g *Grace) StopAndWait() {
g.cancel()
g.Wait()
}
func (g *Grace) Wait() {
g.wg.Wait()
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。