|
Boost : |
From: Christian Mazakas (christian.mazakas_at_[hidden])
Date: 2024-07-18 20:58:40
On Wed, Jul 17, 2024 at 1:31â¯PM Niall Douglas via Boost <
boost_at_[hidden]> wrote:
> Anyway point is having the kernel tell you the buffers filled instead of
> you telling it what buffers to fill is the right design. This is why
> LLFIO's read op allowed reads to fill in buffers read completely
> differently to buffers supplied, incidentally.
>
Ha ha, indeed.
Actually, it might be nice to compare implementation notes. For Fiona, I
create a buffer
sequence for the user by over-allocating for each buffer and making an
intrusive doubly-linked
list. This means that the user gets a mutable buffer sequence without the
need for any intermediate
allocations.
It also enables nice constant time push/pop and slicing. I was heavily
inspired by Rust and Asio when
coming up with the buffer abstraction:
https://github.com/cmazakas/fiona/blob/main/test/buffer_test.cpp
If you'd like, I'd really appreciate any implementation feedback on what's
going on here. Not many
seem to have the expertise in io_uring and this kind of stuff so it's rare
when I get to really talk shop.
Maybe I need to actually sit down and write some docs because I realize
there's a lot to the codebase here
and it's hard to convey everything just using email.
- Christian
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk