[PATCH v6] Cygwin: pipe: Avoid deadlock for non-cygwin writer.
Fri Apr 1 12:55:46 GMT 2022
On Apr 1 17:45, Takashi Yano wrote:
> - As mentioned in commit message of the commit b531d6b0, if multiple
> writers including non-cygwin app exist, the non-cygwin app cannot
> detect pipe closure on the read side when the pipe is created by
> system account or the the pipe creator is running as service.
> This is because query_hdl which is held in write side also is a
> read end of the pipe, so the pipe is still alive for the non-cygwin
> app even after the reader is closed.
> To avoid this problem, this patch lets all processes in the same
> process group close query_hdl using newly introduced internal signal
> __SIGNONCYGCHLD when non-cygwin app is started.
> Addresses: https://cygwin.com/pipermail/cygwin/2022-March/251097.html
> winsup/cygwin/fhandler.h | 20 ++++++++++++++++++++
> winsup/cygwin/fhandler_pipe.cc | 23 +++++++++++++++++++++++
> winsup/cygwin/sigproc.cc | 10 ++++++++++
> winsup/cygwin/sigproc.h | 1 +
> winsup/cygwin/spawn.cc | 18 +++++++++++++++++-
> 5 files changed, 71 insertions(+), 1 deletion(-)
When you're happy with your patch, feel free to push.
More information about the Cygwin-patches