[Top][All Lists]
[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