Don't fully fill the buffer

This commit is contained in:
Till Faelligen 2023-11-02 10:48:09 +01:00
parent 999463a80e
commit 9df2b9a69d
No known key found for this signature in database
GPG key ID: ACCDC9606D472758

View file

@ -419,12 +419,19 @@ func (u *DeviceListUpdater) worker(ch chan spec.ServerName, workerID int) {
var serversToRetry []spec.ServerName
for {
deviceListUpdaterServersRetrying.With(prometheus.Labels{"worker_id": strconv.Itoa(workerID)}).Set(float64(len(retries)))
serversToRetry = serversToRetry[:0] // reuse memory
time.Sleep(time.Second * 2)
// The channel is at capacity, don't try to send more work
if len(ch) == cap(ch) {
continue
}
maxServers := cap(ch) - len(ch)
serversToRetry = serversToRetry[:0] // reuse memory
// -2, so we have space for incoming device list updates over federation
maxServers := (cap(ch) - len(ch)) - 2
if maxServers <= 0 {
continue
}
retriesMu.Lock()
now := time.Now()