code: func (p *Pool) GoCtx(goroutine routineCtx) {
  	p.lock.Lock()
  	p.routinesCtx = append(p.routinesCtx, goroutine)
  	p.waitGroup.Add(1)
  	Go(func() {
  		goroutine(p.ctx)
  		p.waitGroup.Done()
  	})
  	p.lock.Unlock()
  }
docs: // GoCtx starts a recoverable goroutine with a context