public inbox for cygwin-developers@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin-developers@cygwin.com
Subject: Re: 3.3.0: Possible regression in cygwin DLL (Win10); fixed in snapshot
Date: Thu, 11 Nov 2021 12:33:21 +0100	[thread overview]
Message-ID: <YYz/gbltZwjUvKR0@calimero.vinschen.de> (raw)
In-Reply-To: <20211111201206.72cd688ce6a0d72d3a4f6c5f@nifty.ne.jp>

On Nov 11 20:12, Takashi Yano wrote:
> On Thu, 11 Nov 2021 10:52:33 +0100
> Corinna Vinschen wrote:
> > On Nov 10 21:35, Corinna Vinschen wrote:
> > > On Nov 10 22:30, Takashi Yano wrote:
> > > > On Wed, 10 Nov 2021 11:34:25 +0100
> > > > Corinna Vinschen wrote:
> > > > > On Nov 10 17:30, Takashi Yano wrote:
> > > > > > So I would like to propose alternative implementation with
> > > > > > FILE_SYNCHRONOUS_IO_NONALERT being set. Please have a look
> > > > > > at attached patch. With this patch, pipe itself in read side
> > > > > > is always set to nonblocking mode and simulate the blocking
> > > > > > behaviour in raw_read(). This can eliminate creating thread
> > > > > > for reading as well as calling CancelSynchronousIo().
> > > > > > 
> > > > > > Note that setting FILE_SYNCHRONOUS_IO_NONALERT only for read
> > > > > > pipe seems to be enough for C# programs.
> > > > > > 
> > > > > > What do you think of this implementation?
> > > > > [...]
> > What I like with this approach is that it actually simplifies the code.
> > 
> > What I don't like much is that we are now running a busy loop, but the
> > NtQueryObject hang is... disappointing, to say the least.  What about
> > using another function like NtQueryInformationFile(FileNameInformation)?
> > I bet this hangs, too, right?  
> 
> I have just confirmed that NtQueryInformationFile(FileNameInformation)
> also hangs.

Yeah, drat... but expected.

> > [FileProcessIdsUsingFileInformation]
> 
> Thanks for advice. get_query_hdl_per_* is called in the write side,
> so only knows pipe handle of the write side. We would like to know
> ProcessId which have pipe handle of the read side. Can we use
> FileProcessIdsUsingFileInformation for this perpose?

I don't know.  I just stumbled over it yesterday and I thought it might
be something we could utilize.  Supposedly it returns PIDs for processes
having that file open, but how this works for pipe read/write sides
needs testing.  Of course, knowing how Windows functions usually only go
half the way, the function will either only return the current side of
the pipe, or even an error code :-/  Never mind, it was just an idea.


Corinna

  reply	other threads:[~2021-11-11 11:33 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAEv6GOB8PXHgHoz7hdJy6Bia2GWEmUDnTd252gTGinz2vuv=hA@mail.gmail.com>
     [not found] ` <20211105123950.b118a7f2ba38379764df4c12@nifty.ne.jp>
     [not found]   ` <CAEv6GOA-y58YrftXgEgFrjqtOTHmfdu2Vrq76Lwn0suZpZ=U9w@mail.gmail.com>
     [not found]     ` <20211105170542.96ce6dd4ca32880ddfddd660@nifty.ne.jp>
     [not found]       ` <CAEv6GODiM88Xfhk9R3AcEW6UTYSzACzYe4C0gPoTYm=u9ZTqRQ@mail.gmail.com>
     [not found]         ` <20211106044116.698b465a5d8ed6ce2cc75c99@nifty.ne.jp>
     [not found]           ` <2cfa5de7-3b95-9062-4572-f36d304bc916@cornell.edu>
2021-11-06  6:10             ` Takashi Yano
2021-11-06 11:42               ` Corinna Vinschen
2021-11-06 12:02                 ` Corinna Vinschen
2021-11-06 14:13                   ` Takashi Yano
2021-11-06 17:20                     ` Corinna Vinschen
2021-11-07  3:01                       ` Takashi Yano
2021-11-06 16:38                 ` Ken Brown
2021-11-06 17:20                   ` Corinna Vinschen
2021-11-07  3:46                   ` Takashi Yano
2021-11-07 22:20                     ` Ken Brown
2021-11-08  8:23                       ` Takashi Yano
2021-11-08  9:46                         ` Corinna Vinschen
2021-11-10  8:30                 ` Takashi Yano
2021-11-10 10:34                   ` Corinna Vinschen
2021-11-10 13:30                     ` Takashi Yano
2021-11-10 20:35                       ` Corinna Vinschen
2021-11-10 21:32                         ` Ken Brown
2021-11-11 16:11                           ` Ken Brown
2021-11-12  8:38                             ` Takashi Yano
2021-11-16 23:46                             ` Takashi Yano
2021-11-17  8:10                               ` Takashi Yano
2021-11-17 15:12                                 ` Ken Brown
2021-11-11  9:52                         ` Corinna Vinschen
2021-11-11 11:12                           ` Takashi Yano
2021-11-11 11:33                             ` Corinna Vinschen [this message]
2021-11-11 12:02                               ` Takashi Yano
2021-11-11 13:20                                 ` Takashi Yano
2021-11-11 16:07                                   ` Corinna Vinschen
2021-11-12  8:33                             ` Takashi Yano
2021-11-12 10:02                               ` Corinna Vinschen
2021-12-12 13:26                                 ` Takashi Yano
2021-12-12 13:36                                   ` Ken Brown
2021-12-13 11:15                                     ` Takashi Yano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YYz/gbltZwjUvKR0@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin-developers@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).