diff --git a/internal/stream/sse.go b/internal/stream/sse.go index 3f7c872..011b064 100755 --- a/internal/stream/sse.go +++ b/internal/stream/sse.go @@ -52,9 +52,13 @@ func (d *SSEDecoder) Decode(ctx context.Context) <-chan SSEEvent { for { event, err := d.DecodeEvent() - ch <- SSEEvent{ - Event: event, - Error: err, + select { + case <-ctx.Done(): + return + case ch <- SSEEvent{Event: event, Error: err}: + } + if err != nil { + return } } })