code: func NewDesiredStateOfWorldPopulator(
  	kubeClient clientset.Interface,
  	loopSleepDuration time.Duration,
  	getPodStatusRetryDuration time.Duration,
  	podManager pod.Manager,
  	podStatusProvider status.PodStatusProvider,
  	desiredStateOfWorld cache.DesiredStateOfWorld,
  	actualStateOfWorld cache.ActualStateOfWorld,
  	kubeContainerRuntime kubecontainer.Runtime,
  	keepTerminatedPodVolumes bool) DesiredStateOfWorldPopulator {
  	return &desiredStateOfWorldPopulator{
  		kubeClient:                kubeClient,
  		loopSleepDuration:         loopSleepDuration,
  		getPodStatusRetryDuration: getPodStatusRetryDuration,
  		podManager:                podManager,
  		podStatusProvider:         podStatusProvider,
  		desiredStateOfWorld:       desiredStateOfWorld,
  		actualStateOfWorld:        actualStateOfWorld,
  		pods: processedPods{
  			processedPods: make(map[volumetypes.UniquePodName]bool)},
  		kubeContainerRuntime:     kubeContainerRuntime,
  		keepTerminatedPodVolumes: keepTerminatedPodVolumes,
  		hasAddedPods:             false,
  		hasAddedPodsLock:         sync.RWMutex{},
  	}
  }
docs: // NewDesiredStateOfWorldPopulator returns a new instance of
  // DesiredStateOfWorldPopulator.
  //
  // kubeClient - used to fetch PV and PVC objects from the API server
  // loopSleepDuration - the amount of time the populator loop sleeps between
  //     successive executions
  // podManager - the kubelet podManager that is the source of truth for the pods
  //     that exist on this host
  // desiredStateOfWorld - the cache to populate