code: func NewPriorityQueueWithClock(stop <-chan struct{}, clock util.Clock) *PriorityQueue {
  	pq := &PriorityQueue{
  		clock:            clock,
  		stop:             stop,
  		podBackoff:       NewPodBackoffMap(1*time.Second, 10*time.Second),
  		activeQ:          util.NewHeapWithRecorder(podInfoKeyFunc, activeQComp, metrics.NewActivePodsRecorder()),
  		unschedulableQ:   newUnschedulablePodsMap(metrics.NewUnschedulablePodsRecorder()),
  		nominatedPods:    newNominatedPodMap(),
  		moveRequestCycle: -1,
  	}
  	pq.cond.L = &pq.lock
  	pq.podBackoffQ = util.NewHeapWithRecorder(podInfoKeyFunc, pq.podsCompareBackoffCompleted, metrics.NewBackoffPodsRecorder())
  
  	pq.run()
  
  	return pq
  }
docs: // NewPriorityQueueWithClock creates a PriorityQueue which uses the passed clock for time.