[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unexpectedly low read/write performance of open-pipe
From: |
Chris Vine |
Subject: |
Re: Unexpectedly low read/write performance of open-pipe |
Date: |
Tue, 9 Apr 2019 22:36:53 +0100 |
On Tue, 09 Apr 2019 14:24:09 -0400
Mark H Weaver <address@hidden> wrote:
> Hi Chris,
> Chris Vine <address@hidden> writes:
> > On Tue, 09 Apr 2019 04:35:38 -0400
> > Mark H Weaver <address@hidden> wrote:
> >>
> >> I think it's probably fine for 2.2, although a more careful check should
> >> be made for differences in behavior between the old and new
> >> implementations, and tests should be added. I'll try to get to it soon.
> >
> > If it is going in 2.2 (or 3.0) it would be nice if the ports could be
> > suspendable. put-bytevector (used by write!) is suspendable;
> > get-bytevector-some (used by read!) is not.
>
> Unless I'm mistaken, nothing done within custom ports is suspendable,
> regardless of which I/O primitives are used, because the custom port
> implementations themselves are all written in C. The custom port
> handlers such as 'read!' and 'write!' are always invoked from C code.
> Caleb Ristvedt recently ran into this problem and posted about it on
> guile-user:
>
> https://lists.gnu.org/archive/html/guile-user/2019-03/msg00032.html
>
> I responded here:
>
> https://lists.gnu.org/archive/html/guile-user/2019-04/msg00000.html
>
> I'm not sure off-hand what would be required to re-implement custom
> ports in suspendable Scheme code. Andy Wingo would be a good person to
> ask, since he implemented (ice-9 suspendable-ports).
You are probably right about custom ports' implementations. I
encountered a similar problem with guile-gnutls ports. (In the case of
guile-gnutls, because TLS connections are one of the areas where you
would expect suspendable i/o to be useful, that is a shame.)
Chris
- Unexpectedly low read/write performance of open-pipe, Rob Browning, 2019/04/07
- Re: Unexpectedly low read/write performance of open-pipe, Rob Browning, 2019/04/07
- Re: Unexpectedly low read/write performance of open-pipe, Rob Browning, 2019/04/07
- Re: Unexpectedly low read/write performance of open-pipe, Rob Browning, 2019/04/07
- Re: Unexpectedly low read/write performance of open-pipe, Mark H Weaver, 2019/04/08
- Re: Unexpectedly low read/write performance of open-pipe, Rob Browning, 2019/04/09
- Re: Unexpectedly low read/write performance of open-pipe, Mark H Weaver, 2019/04/09
- Re: Unexpectedly low read/write performance of open-pipe, Chris Vine, 2019/04/09
- Re: Unexpectedly low read/write performance of open-pipe, Mark H Weaver, 2019/04/09
- Re: Unexpectedly low read/write performance of open-pipe,
Chris Vine <=
- Re: Unexpectedly low read/write performance of open-pipe, Mark H Weaver, 2019/04/09
- Re: Unexpectedly low read/write performance of open-pipe, Mark H Weaver, 2019/04/16
- Re: Unexpectedly low read/write performance of open-pipe, Mark H Weaver, 2019/04/09
- Re: Unexpectedly low read/write performance of open-pipe, Mark H Weaver, 2019/04/17
- Re: Unexpectedly low read/write performance of open-pipe, Rob Browning, 2019/04/21
- Re: Unexpectedly low read/write performance of open-pipe, Arne Babenhauserheide, 2019/04/22
Re: Unexpectedly low read/write performance of open-pipe, tomas, 2019/04/23