pipe with size==0
Takashi Yano
takashi.yano@nifty.ne.jp
Mon Mar 31 11:59:46 GMT 2025
Hi Corinna,
I have considered for a several days for:
https://github.com/msys2/msys2-runtime/issues/270
but, the situation is not well.
There are two problems if the pipe size is zero.
(1) select() does not work for that pipe because PeekNamedPipe()
always returns 0. Read side is ready to read only when the
write side is about to write but there is no way to know that.
(2) The cause of the problem:
https://cygwin.com/pipermail/cygwin/2025-January/257143.html
cannot be avoidable. To avoid CancelIo() problem, the patch
https://cygwin.com/pipermail/cygwin-patches/2025q1/013451.html
restrict to write only data less than the current pipe space.
However, if pipe size is zero this is impossible.
If we think only about bison calld from native ninja,
https://github.com/msys2/msys2-runtime/issues/270#issuecomment-2758310515
can be a solution, but if the cygwin app called from native ninja
uses select() or interruption while write(), it will not work
properly.
Any idea?
--
Takashi Yano <takashi.yano@nifty.ne.jp>
lost
More information about the Cygwin-developers
mailing list