package common import ( "context" "fmt" "github.com/bytedance/gopkg/util/gopool" "math" ) var relayGoPool gopool.Pool func init() { relayGoPool = gopool.NewPool("gopool.RelayPool", math.MaxInt32, gopool.NewConfig()) relayGoPool.SetPanicHandler(func(ctx context.Context, i interface{}) { if stopChan, ok := ctx.Value("stop_chan").(chan bool); ok { SafeSendBool(stopChan, true) } SysError(fmt.Sprintf("panic in gopool.RelayPool: %v", i)) }) } func RelayCtxGo(ctx context.Context, f func()) { relayGoPool.CtxGo(ctx, f) }