code: func NewGoroutinePool(ctx context.Context, maxConcurrentJobs int) *GoroutinePool {
  	return &GoroutinePool{
  		ctx:  ctx,
  		sema: newSemaphore(maxConcurrentJobs),
  	}
  }
docs: // NewGoroutinePool creates a new GoroutinePool running at most
  // maxConcurrentJobs concurrent operations.