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
In the above compiler explorer sample, we see that theoretically Beast can parse up to 30 octets but instead only parses 16 and then requests that the user update the buffer.
This works fine in most cases for Asio applications as buffers are entirely owned by the caller but does not work so well when using io_uring's multishot recv() method where buffers are owned by the ring so not parsing as many octets as possible gums up the application.
Beast should parse as many octets as possible, fully consuming the buffer so long as the provided octets are valid.
https://godbolt.org/z/cPd7h7n8G
In the above compiler explorer sample, we see that theoretically Beast can parse up to 30 octets but instead only parses 16 and then requests that the user update the buffer.
This works fine in most cases for Asio applications as buffers are entirely owned by the caller but does not work so well when using io_uring's multishot recv() method where buffers are owned by the ring so not parsing as many octets as possible gums up the application.
Beast should parse as many octets as possible, fully consuming the buffer so long as the provided octets are valid.
Inlined example for posterity:
The text was updated successfully, but these errors were encountered: