code: func newRequestDistributor(peers *peerSet, stopChn chan struct{}, clock mclock.Clock) *requestDistributor {
  	d := &requestDistributor{
  		clock:    clock,
  		reqQueue: list.New(),
  		loopChn:  make(chan struct{}, 2),
  		stopChn:  stopChn,
  		peers:    make(map[distPeer]struct{}),
  	}
  	if peers != nil {
  		peers.notify(d)
  	}
  	go d.loop()
  	return d
  }
docs: // newRequestDistributor creates a new request distributor