[PATCH v4] Cygwin: pipe: Avoid deadlock for non-cygwin writer.
Jeremy Drake
cygwin@jdrake.com
Tue Mar 29 15:40:19 GMT 2022
On Tue, 29 Mar 2022, Takashi Yano wrote:
> diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
> index b87160edb..006c7b4bf 100644
> --- a/winsup/cygwin/fhandler.h
> +++ b/winsup/cygwin/fhandler.h
> @@ -1194,6 +1194,7 @@ private:
> HANDLE hdl_cnt_mtx;
> HANDLE query_hdl_proc;
> HANDLE query_hdl_value;
> + HANDLE query_hdl_close_req_evt;
> uint64_t pipename_key;
> DWORD pipename_pid;
> LONG pipename_id;
> @@ -1258,6 +1259,16 @@ public:
> }
> bool reader_closed ();
> HANDLE temporary_query_hdl ();
> + bool need_close_query_hdl ()
> + {
> + return query_hdl_close_req_evt ?
> + IsEventSignalled (query_hdl_close_req_evt) : false;
> + }
> + void request_close_query_hdl ()
> + {
> + if (query_hdl_close_req_evt)
> + SetEvent (query_hdl_close_req_evt);
> + }
> };
>
> #define CYGWIN_FIFO_PIPE_NAME_LEN 47
Oh, a minor optimization: should close_query_handle also close (and NULL)
the query_hdl_close_req_evt?
More information about the Cygwin-patches
mailing list