262
ctx context.Context,
263
ackLevel int64,
265
>
db.Lock()
266
>
defer db.Unlock()
267
>
// We don't need to update lastWrite/lastChange in here since this function is only used by
268
>
// the old backlog manager and those fields are only used by the new backlog manager.
269
>
270
>
// Reset approximateBacklogCount to fix the count divergence issue
271
>
maxReadLevel := db.getMaxReadLevelLocked(subqueueZero)
272
>
if ackLevel == maxReadLevel {
273
db.subqueues[subqueueZero].ApproximateBacklogCount = 0
274
db.subqueues[subqueueZero].oldestTime = time.Time{} // zero time means no backlog
275
}
276
277
>
prevAckLevel := db.subqueues[subqueueZero].AckLevel
db.go
278
>
db.subqueues[subqueueZero].AckLevel = ackLevel
279
>
280
>
err := db.updateTaskQueueLocked(ctx, false)
281
>
if err != nil {
282
db.subqueues[subqueueZero].AckLevel = prevAckLevel
283
}
284
>
db.emitPhysicalBacklogGaugesLocked()
db.go
285
>
return err
286
}
287