code: func (f *Forwarder) getOrCreateRequestContext(key string) (context.Context, context.CancelFunc) {
  	f.Lock()
  	defer f.Unlock()
  	ctx, ok := f.activeRequests[key]
  	if ok {
  		return ctx, nil
  	}
  	ctx, cancel := context.WithCancel(context.TODO())
  	f.activeRequests[key] = ctx
  	return ctx, func() {
  		cancel()
  		f.Lock()
  		defer f.Unlock()
  		delete(f.activeRequests, key)
  	}
  }
docs: // getOrCreateRequestContext creates a new certificate request for a given context,
  // if there is no active CSR request in progress, or returns an existing one.
  // if the new context has been created, cancel function is returned as a
  // second argument. Caller should call this function to signal that CSR has been
  // completed or failed.