func (pce *ProcessCacheEntry) IsExecveResolved(timestamp time.Time, updateState bool) bool {
	if updateState {
		pce.Lock()
		defer pce.Unlock()
	} else {
		pce.RLock()
		defer pce.RUnlock()
	}
	if pce.ForkTime == nil || pce.ForkThresholdReached {
		return true
	}
	if pce.ExecveTime != nil && pce.ForkTime.Before(*pce.ExecveTime) {
		if updateState {
			pce.ForkThresholdReached = true
		}
		return true
	}
	if pce.ForkTime.Add(MultiprocessingThreshold).Before(timestamp) {
		if updateState {
			pce.ForkThresholdReached = true
		}
		return true
	}
	return false
}
// IsExecveResolved - Checks if the execve & fork times are consistent to declare that
// the process and profile that are set in the current cacheEntry are the real process
// data. In other words this functions guesses if the process crossed the threshold to
// be considered as a multiprocessed or if we should wait to make sure that no another
// is on its way.
Checks if the execve & fork times are consistent to declare that
the process and profile that are set in the current cacheEntry are the real process
data. In other words this functions guesses if the process crossed the threshold to
be considered as a multiprocessed or if we should wait to make sure that no another
is on its way.
// IsExecveResolved - Checks if the execve & fork times are consistent to declare that // the process and profile that are set in the current cacheEntry are the real process // data . In other words this functions guesses if the process crossed the threshold to // be considered as a multiprocessed or if we should wait to make sure that no another // is on its way .
func (pce *ProcessCacheEntry) IsExecveResolved(timestamp time.Time, updateState bool) bool {
	if updateState {
		pce.Lock()
		defer pce.Unlock()
	} else {
		pce.RLock()
		defer pce.RUnlock()
	}
	if pce.ForkTime == nil || pce.ForkThresholdReached {
		return true
	}
	if pce.ExecveTime != nil && pce.ForkTime.Before(*pce.ExecveTime) {
		if updateState {
			pce.ForkThresholdReached = true
		}
		return true
	}
	if pce.ForkTime.Add(MultiprocessingThreshold).Before(timestamp) {
		if updateState {
			pce.ForkThresholdReached = true
		}
		return true
	}
	return false
}
func ( pce * ProcessCacheEntry ) IsExecveResolved ( timestamp time . Time , updateState bool ) bool { if updateState { pce . Lock ( ) defer pce . Unlock ( ) } else { pce . RLock ( ) defer pce . RUnlock ( ) } if pce . ForkTime == nil || pce . ForkThresholdReached { return true } if pce . ExecveTime != nil && pce . ForkTime . Before ( * pce . ExecveTime ) { if updateState { pce . ForkThresholdReached = true } return true } if pce . ForkTime . Add ( MultiprocessingThreshold ) . Before ( timestamp ) { if updateState { pce . ForkThresholdReached = true } return true } return false }
Checks if the execve & fork times are consistent to declare that
the process and profile that are set in the current cacheEntry are the real process
data.
Checks if the execve & fork times are consistent to declare that the process and profile that are set in the current cacheEntry are the real process data .