On Mon, Dec 7, 2015 at 11:59 AM, 'Davide Libenzi' via Akaros <
[email protected]> wrote:

> On Mon, Dec 7, 2015 at 7:40 AM, Barret Rhoden <[email protected]>
> wrote:
>
>> On 2015-12-07 at 07:32 "'Davide Libenzi' via Akaros"
>> <[email protected]> wrote:
>> > No, qpread() does not discard. Like pread(), simply reads at offset.
>>
>> In that case, let's not use the queue stuff for this.  All we need is a
>> buffer and length, and hang it off the aux.
>>
>
> OK, dropped all the queue qpread() code 😐
> But, it is not just a simple buffer.
> In general, you need to be able to build it progressively, without using
> huge-alloc-and-hope semantics.
> This is why the queue stuff was coming handy. You could just append stuff.
> I created a new growable buffer data structure, which allows O(1) writes
> at both head and tail, as well as log(N) seeks.
> As well as doing-less-allocs-than-writes thing.
> Supporting seek+read+read as well as pread, with the ability to pass in
> custom memcpy() functions, to allow it to read directly into user buffers.
>

I hope it's a Rope. I suggested a while ago that we should have an
implementation of Ropes in our system.
https://en.wikipedia.org/wiki/Rope_(data_structure)

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to