code: func (grm *goRoutineMap) operationComplete(
  	operationName string, err *error) {
  	// Defer operations are executed in Last-In is First-Out order. In this case
  	// the lock is acquired first when operationCompletes begins, and is
  	// released when the method finishes, after the lock is released cond is
  	// signaled to wake waiting goroutine.
  	defer grm.cond.Signal()
  	grm.lock.Lock()
  	defer grm.lock.Unlock()
  
  	if *err == nil || !grm.exponentialBackOffOnError {
  		// Operation completed without error, or exponentialBackOffOnError disabled
  		delete(grm.operations, operationName)
  		if *err != nil {
  			// Log error
  			klog.Errorf("operation for %q failed with: %v",
  				operationName,
  				*err)
  		}
  	} else {
  		// Operation completed with error and exponentialBackOffOnError Enabled
  		existingOp := grm.operations[operationName]
  		existingOp.expBackoff.Update(err)
  		existingOp.operationPending = false
  		grm.operations[operationName] = existingOp
  
  		// Log error
  		klog.Errorf("%v",
  			existingOp.expBackoff.GenerateNoRetriesPermittedMsg(operationName))
  	}
  }
docs: // operationComplete handles the completion of a goroutine run in the
  // goRoutineMap.