code: func (lim *limiter) setLimitsLocked(device config.DeviceConfiguration) bool {
  	readLimiter := lim.getReadLimiterLocked(device.DeviceID)
  	writeLimiter := lim.getWriteLimiterLocked(device.DeviceID)
  
  	// limiters for this device are created so we can store previous rates for logging
  	previousReadLimit := readLimiter.Limit()
  	previousWriteLimit := writeLimiter.Limit()
  	currentReadLimit := rate.Limit(device.MaxRecvKbps) * 1024
  	currentWriteLimit := rate.Limit(device.MaxSendKbps) * 1024
  	if device.MaxSendKbps <= 0 {
  		currentWriteLimit = rate.Inf
  	}
  	if device.MaxRecvKbps <= 0 {
  		currentReadLimit = rate.Inf
  	}
  	// Nothing about this device has changed. Start processing next device
  	if previousWriteLimit == currentWriteLimit && previousReadLimit == currentReadLimit {
  		return false
  	}
  
  	readLimiter.SetLimit(currentReadLimit)
  	writeLimiter.SetLimit(currentWriteLimit)
  
  	return true
  }
docs: // This function sets limiters according to corresponding DeviceConfiguration