From 28f727de1f85a047881653391ba901c667ee87bf Mon Sep 17 00:00:00 2001 From: Guido Zuidhof Date: Thu, 21 Nov 2024 11:33:20 +0100 Subject: [PATCH] Never flush without items --- batcher.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/batcher.go b/batcher.go index 3f6adf8..cf050dd 100644 --- a/batcher.go +++ b/batcher.go @@ -84,7 +84,7 @@ func (b *Batcher[T]) start(ctx context.Context, // If the batcher is cancelled and the buffer is not empty, we want to flush the // remaining items with the maximum batch size, so we skip until we reach max size or the buffer is empty. - skipFlush := isCancelled && len(b.buffer) > 0 && !isMaxSize + skipFlush := (isCancelled && len(b.buffer) > 0 && !isMaxSize) || len(items) == 0 if !skipFlush { // We need to copy the slice to make sure that the slice that is passed is valid even if asynchronously