groff
[Top][All Lists]
Advanced

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

Re: [Groff] Re: MSVC Port--Issue with groff Hanging


From: Jeff Conrad
Subject: Re: [Groff] Re: MSVC Port--Issue with groff Hanging
Date: Wed, 3 Dec 2003 19:30:51 -0800

Keith Marshall wrote:

> I've just seen the following in nonposix.h, defined for MSVC:
> 
>   #define pipe(pfd)  _pipe((pfd), 0, _O_BINARY|_O_NOINHERIT)
> 
> This disables buffering completely.  Does this work?
> 
> 
>     Werner
> 
> This hanging behaviour is also apparent in the MinGW build of groff.  (I 
> was afraid it might be, since it uses msvcrt.dll, but didn't get a chance 
> to check before now).

Using 0 rather than BUFSIZ seems to have no effect on the program behavior.
groff still hangs in the manner described, and I could find little if any
difference in performance with values ranging from 0 to 131072.  Of course,
I don't know what size buffer actually gets allocated.

>         groff -p -ms -o<anything> pic.ms
> 
> causes groff to hang, until interrupted by Ctrl-C, at which point pic 
> reports a fatal output error, and aborts; (this *after* all expected 
> output has already been written to stdout).

I don't have a problem if I specify a page number that is greater than or
equal to the last page of the document.  When I interrupt a hung groff with
Ctrl-C, I don't get the error message.  I DO get the preprocessor error
message if I revise pipeline.c to not wait for the children; as in Keith's
example, the message is after all expected output has been written.

> simply results in pre-grohtml crashing with a SIGPIPE, and no generated 
> output at all.

How do you get a SIGPIPE in Win32? Was this definition added as part
of MinGW?

Jeff



reply via email to

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