Skip to content

Commit

Permalink
misc changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Ice3man543 committed Jul 1, 2024
1 parent 3e08704 commit dba5a6d
Showing 1 changed file with 17 additions and 9 deletions.
26 changes: 17 additions & 9 deletions batcher/batcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,22 +83,28 @@ func New[T any](opts ...BatcherOption[T]) *Batcher[T] {
// Append appends data to the batcher
func (b *Batcher[T]) Append(d ...T) {
for _, item := range d {
sizeofItem := reflectutil.SizeOf(item)
currentSize := b.currentSize.Load()
var sizeofItem int

if b.maxSize > 0 && currentSize+int32(sizeofItem) > int32(b.maxSize) {
b.full <- true
b.incomingData <- item
b.currentSize.Add(int32(sizeofItem))
continue
if b.maxSize > 0 {
sizeofItem = reflectutil.SizeOf(item)
currentSize := b.currentSize.Load()

if currentSize+int32(sizeofItem) > int32(b.maxSize) {
b.full <- true
b.incomingData <- item
b.currentSize.Add(int32(sizeofItem))
continue
}
}

if !b.put(item) {
// will wait until space available
b.full <- true
b.incomingData <- item
}
b.currentSize.Add(int32(sizeofItem))
if b.maxSize > 0 {
b.currentSize.Add(int32(sizeofItem))
}
}
}

Expand Down Expand Up @@ -176,7 +182,9 @@ func (b *Batcher[T]) doCallback() {
for item := range b.incomingData {
items[k] = item
k++
b.currentSize.Add(-int32(reflectutil.SizeOf(item)))
if b.maxSize > 0 {
b.currentSize.Add(-int32(reflectutil.SizeOf(item)))
}
if k >= n {
break
}
Expand Down

0 comments on commit dba5a6d

Please sign in to comment.