[PATCH fifo 0/2] Add support for duplex FIFOs

Ken Brown kbrown@cornell.edu
Wed Apr 3 12:39:00 GMT 2019

On 4/3/2019 8:33 AM, Achim Gratz wrote:
> Achim Gratz writes:
>> OK, a bit more info: The whole thing runs from a perl script (actually a
>> module) that opens pipes to gnuplot and ghostscript.  This code is
>> _really_ old and has seen a lot of Cygwin releases, so it has options to
>> either use temporary files, named pipes aka FIFO or direct pipes.  Using
>> temporary files serializes the execution and using a pipe chain is
>> _really_ slow (like a hundred times, which is mostly tied up in system
>> for a reason that I don't understand), so using FIFO is the default.
>> Your new FIFO code increases the system time by about a factor of 10 in
>> my tests, btw.
> So I've finalöly got around to fixing the pipe performance problem by
> fooling the programs involved to think they are using files: have them
> reading from /proc/self/fd/0 and writing to /proc/self/fd/1 gives me the
> same performance as using a named FIFO.
> Incidentally, that workaround still works when I switch to the 20190402
> snapshot, while named FIFO fails as with the older snapshot (as
> expected), so that seems to take a different code path.  Maybe that
> helps in finding the problem?


In the meantime, I've fixed the raw_write bug that I mentioned in an earlier 
post, along with some other bugs I found.  I want to do a little more testing 
before I send the patches.


More information about the Cygwin-patches mailing list