Skip to content

Enable streaming output by flushing during processing#50

Merged
vagetman merged 4 commits into
mainfrom
vadim/streambody_flush
Apr 30, 2026
Merged

Enable streaming output by flushing during processing#50
vagetman merged 4 commits into
mainfrom
vadim/streambody_flush

Conversation

@vagetman
Copy link
Copy Markdown
Collaborator

Streaming output now functions correctly by ensuring immediate flushing of the output writer during processing. This prevents stalling and allows the client to receive content progressively. The changes include flush calls in critical areas to ensure that data is sent to the client as it becomes available, rather than waiting for all fragments to resolve.

Fixes #44

…ring

Without explicit flush() calls, content written to the StreamingBody
accumulated in the writer's buffer while the processor blocked waiting
for pending includes via select(). This meant the client saw nothing
until all fragments resolved, defeating the purpose of streaming.

Add flush() at two points:
- In process_stream, after processing each batch of parsed elements
- In drain_queue, after flushing ready slots (Step 2) and before
  blocking on select() (Step 4)

Fixes #44
…toml and Cargo.lock; update rust toolchain to 1.95.0
@vagetman vagetman merged commit 5a29cdc into main Apr 30, 2026
3 checks passed
@vagetman vagetman deleted the vadim/streambody_flush branch April 30, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Streaming seems ineffective with process_response?

2 participants