code: func NewThrottle(
  	rateHz float64,
  	capacity uint64) (t Throttle) {
  	typed := &throttle{
  		startTime: time.Now(),
  		bucket:    NewTokenBucket(rateHz, capacity),
  	}
  
  	typed.mu = syncutil.NewInvariantMutex(typed.checkInvariants)
  
  	t = typed
  	return
  }
docs: // Create a throttle that uses time.Now to judge the time given to the
  // underlying token bucket.
  //
  // Be aware of the monotonicity issues. In particular:
  //
  //  *  If the system clock jumps into the future, the throttle will let through
  //     a burst of traffic.
  //
  //  *  If the system clock jumps into the past, it will halt all traffic for
  //     a potentially very long amount of time.
  //