[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