diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-04-14 16:14:51 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-04-17 10:31:40 +0200 |
commit | 468dc5f1a47f3d7d90ae7e83476344c55c20b149 (patch) | |
tree | eda0b21f00e6bfd701ae881a8617d48bbf78e06e /client | |
parent | bb273b823216308a1b33ce2ef6dc7b0a4639494b (diff) |
Release lock before retrying
Diffstat (limited to 'client')
-rw-r--r-- | client/go/internal/vespa/document/dispatcher.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/client/go/internal/vespa/document/dispatcher.go b/client/go/internal/vespa/document/dispatcher.go index dc6045ac791..533ca7a0019 100644 --- a/client/go/internal/vespa/document/dispatcher.go +++ b/client/go/internal/vespa/document/dispatcher.go @@ -74,8 +74,6 @@ func NewDispatcher(feeder Feeder, throttler Throttler, breaker CircuitBreaker, o func (d *Dispatcher) sendDocumentIn(group *documentGroup) { group.mu.Lock() - defer group.mu.Unlock() - defer d.releaseSlot() first := group.ops.Front() if first == nil { panic("sending from empty document group, this should not happen") @@ -84,6 +82,8 @@ func (d *Dispatcher) sendDocumentIn(group *documentGroup) { op.attempts++ result := d.feeder.Send(op.document) d.results <- result + d.releaseSlot() + group.mu.Unlock() if d.shouldRetry(op, result) { d.enqueue(op) } |