[PATCH v6] Cygwin: pipe: Avoid deadlock for non-cygwin writer.

Corinna Vinschen corinna-cygwin@cygwin.com
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.


Thanks,
Corinna


More information about the Cygwin-patches mailing list