Skip to content

HTTP/1 Chunk Encoder & Task Scheduling Revamp

Pre-release
Pre-release

Choose a tag to compare

@rccarper rccarper released this 14 Jul 19:34
6c5948a
HTTP/1 chunk encoder & task scheduling revamp (#272)

This fixes issue https://github.com/awslabs/aws-c-http/issues/270

Encoder changes:
- Combine the 2 state machines into 1.
- Encoder no longer deals with the lock when getting new chunks. The stream will be responsible for getting new chunks into the thread.

Task-Scheduling changes:
- HTTP/1 connection shares 1 lock with all its streams.
- connection has new `cross_thread_work_task` that moves work from `synced_data` to `thread_data`.
  - kicks off the `outgoing_stream_task` if necessary
- similarly, stream has a `cross_thread_work_task` for moving work from `synced_data` to `thread_data`.
  - it can also kick off the connection's `outgoing_stream_task` if necessary