code: func (v *ProcTableImpl) RemoveEntry(pvName string) (CleanupState, *time.Time, error) {
  	v.mutex.Lock()
  	defer v.mutex.Unlock()
  	entry, ok := v.procTable[pvName]
  	if !ok {
  		return CSNotFound, nil, nil
  	}
  	if entry.Status == CSRunning {
  		return CSUnknown, nil, fmt.Errorf("cannot remove proctable entry for %q when it is still running", pvName)
  	}
  	if entry.Status == CSUnknown {
  		return CSUnknown, nil, fmt.Errorf("proctable entry for %q in unexpected unknown state", pvName)
  	}
  	delete(v.procTable, pvName)
  	return entry.Status, &entry.StartTime, nil
  }
docs: // RemoveEntry Removes proctable entry and returns final state and start time of cleanup.
  // Must only be called and cleanup that has ended, else error is returned.