bug-gnulib
[Top][All Lists]
Advanced

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

Re: [patch]spawn-pipe.c / spawni.c compile on OpenVMS.


From: Bruno Haible
Subject: Re: [patch]spawn-pipe.c / spawni.c compile on OpenVMS.
Date: Fri, 07 Jul 2017 10:13:45 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-83-generic; KDE/5.18.0; x86_64; ; )

On Montag, 3. Juli 2017 20:38:45 CEST John E. Malmberg wrote:
> On 7/3/2017 7:58 PM, Bruno Haible wrote:
> > John E. Malmberg wrote:
> >> The OpenVMS Mailboxes work for data up to about 65K and then have buffer
> >> full problems.
> >> ...
> >> For Bash and Coreutils, I have a close to a pipe replacement that uses a
> >> slightly different API in that you have to know if the pipe is parent to
> >> child or child to parent when you create the pipes.  This handles pipes
> >> up to the amount of virtual memory available to the process.

> Until I changed the OpenVMS GNV Bash port to use my replacement pipe 
> code, I could not run most configure scripts as something would write 
>  >65 KB of data into a pipe that did not yet have anything reading from 
> it, and then everything would stop.

This is a good intermediate achievement. But still, even with bash, it is
frequent to have pipes between brethren processes:
  $ (cd dir1 && command1) | (cd dir2 && command2)

> With unidirectional channels to the mailbox it is trivial for the parent 
> to monitor the child's reading and writing or if there even is a child 
> connected.
> 
> With bi-directional channels it is not possible at all.

Then you need a pipe() emulation that is based on unidirectional channels.

> The developers that mapped the pipe API to the Mailbox API used 
> bi-directional channels instead of unidirectional channels.

Then you need to redo/override this implementation of pipe() with a better
one.

Bruno




reply via email to

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