You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Http1xClientConnection is resumed and paused by the connection and individual streams. When those streams are dispatched on a different context than the connection context, there can be races due to miss notifications and the channel auto-read status remains paused preventing other HTTP streams to be received.
The text was updated successfully, but these errors were encountered:
…d individual streams. When those streams are dispatched on a different context than the connection context, there can be races due to miss notifications and the channel auto-read status remains paused preventing other HTTP streams to be received.
Instead of relying on each stream to cooperate for setting the channel auto-read status we define now a channel a window of bytes whose value determines the channel auto-read status. Each received buffer fills the bytes window, each buffer read by the response updates the window accordingly. We use the channel low/high watermarks configuration to update the channel auto-read status.
When the channel and its streams use the same event-loop this is an immediate operation, otherwise the stream sends a message to update the bytes window. The channel gets exclusive access to the bytes window value and the channel auto-read status and be race free.
fixes#3849
Signed-off-by: Julien Viet <julien@julienviet.com>
…d individual streams. When those streams are dispatched on a different context than the connection context, there can be races due to miss notifications and the channel auto-read status remains paused preventing other HTTP streams to be received.
Instead of relying on each stream to cooperate for setting the channel auto-read status we define now a channel a window of bytes whose value determines the channel auto-read status. Each received buffer fills the bytes window, each buffer read by the response updates the window accordingly. We use the channel low/high watermarks configuration to update the channel auto-read status.
When the channel and its streams use the same event-loop this is an immediate operation, otherwise the stream sends a message to update the bytes window. The channel gets exclusive access to the bytes window value and the channel auto-read status and be race free.
fixes#3849
Signed-off-by: Julien Viet <julien@julienviet.com>
The
Http1xClientConnection
is resumed and paused by the connection and individual streams. When those streams are dispatched on a different context than the connection context, there can be races due to miss notifications and the channel auto-read status remains paused preventing other HTTP streams to be received.The text was updated successfully, but these errors were encountered: