On Tue, 14 Sep 2021 13:03:55 +0200 Corinna Vinschen wrote: > On Sep 14 19:19, Takashi Yano wrote: > > On Tue, 14 Sep 2021 18:56:23 +0900 > > Takashi Yano wrote: > > > On Tue, 14 Sep 2021 11:03:39 +0200 > > > Corinna Vinschen wrote: > > > > I don't quite follow the argument. Blocking pipes are using > > > > asynchronous IO, so they are in fact not blocking calls on the > > > > OS level. After calling NtWriteFile, the blocking variation > > > > will go into the subsequent > > > > > > > > waitret = cygwait (evt, INFINITE, cw_cancel | cw_sig); > > > > > > > > So, wouldn't you get the same effect by keeping the pipe in > > > > FILE_PIPE_QUEUE_OPERATION mode and just add a timeout to the above > > > > cygwait call and handle select_sem in a not yet existing WAIT_TIMEOUT > > > > conditional? > > > > > > Sounds reasonable. I revised the patches. Do you mean something like > > > patch attached? > > > > Revised a bit. > > Pushed. I added a bit of text to the commit message in terms of > setting pipes to blocking when exec'ing a non-Cygwin tool. Thanks. I found the handling of EPIPE and SIGPIPE in raw_write() was not correct. Patch attached. -- Takashi Yano