guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about an error with ports


From: Olivier Dion
Subject: Re: Question about an error with ports
Date: Fri, 11 Mar 2022 10:06:09 -0500

On Fri, 11 Mar 2022, Maxime Devos <maximedevos@telenet.be> wrote:
> Olivier Dion via General Guile related discussions schreef op do 10-03-
> 2022 om 18:46 [-0500]:
>> I haven't check the implementation details, but I think it's just a
>> question of buffering.  `get-bytevector-n` will block just like
>> `get-bytevector-some` when the port is empty.  The former will return up
>> to N bytes and the latter might return more than N bytes.
>
> I don't think that get-bytevector-some can return more, and it could
> return less:
>
>      Return either [...] or a new bytevector containing some of the
>      available bytes (at least one),

More or less is relative to the N value compared with get-bytevector-n.
So realy the `some` value is unknown.  You just know you will have at
least a byte yes.

> Also, gnunet-scheme depends on the behaviour of it (*) being able to
> return less without blocking (in gnu/gnunet/utils/tokeniser.scm).  If
> the behaviour was different, there would have been many test failures.
>
> (*) actually, it uses the variant 'get-bytevector-some!' instead of
> 'get-bytevector-some'.

Re-using the same vector would certainly reduce memory
usage/fragmentation I suppose.  Internally, the latter use the former I
think.

Regards,
old

-- 
Olivier Dion
Polymtl



reply via email to

[Prev in Thread] Current Thread [Next in Thread]