func (p *pool) Go(goroutine func(context.Context)) {
	p.waitGroup.Add(1)
	go func() {
		defer func() {
			if r := recover(); r != nil {
				if p.recoverFunc != nil {
					p.recoverFunc(r)
				}
			}
			p.waitGroup.Done()
		}()
		goroutine(p.ctx)
	}()
}
// Go starts a recoverable goroutine with a context.
Go starts a recoverable goroutine with a context.
// Go starts a recoverable goroutine with a context .
func (p *pool) Go(goroutine func(context.Context)) {
	p.waitGroup.Add(1)
	go func() {
		defer func() {
			if r := recover(); r != nil {
				if p.recoverFunc != nil {
					p.recoverFunc(r)
				}
			}
			p.waitGroup.Done()
		}()
		goroutine(p.ctx)
	}()
}
func ( p * pool ) Go ( goroutine func ( context . Context ) ) { p . waitGroup . Add ( 1 ) go func ( ) { defer func ( ) { if r := recover ( ) ; r != nil { if p . recoverFunc != nil { p . recoverFunc ( r ) } } p . waitGroup . Done ( ) } ( ) goroutine ( p . ctx ) } ( ) }
Go starts a recoverable goroutine with a context.
Go starts a recoverable goroutine with a context .