Boost logo

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