On Mon, 11 Mar 2024 11:47:32 +0100 Corinna Vinschen wrote: > Hi Takashi, > > On Mar 10 19:31, Takashi Yano wrote: > > @@ -590,6 +591,10 @@ child_info_spawn::worker (const char *prog_arg, const > > char *const *argv, > > { > > fhandler_pipe *pipe = (fhandler_pipe *)(fhandler_base *) cfd; > > pipe->set_pipe_non_blocking (false); > > + pipew_duped = (fhandler_pipe *) > > + ccalloc (HEAP_FHANDLER, 1, sizeof (fhandler_pipe)); > > + pipew_duped = new (pipew_duped) fhandler_pipe; > > + pipe->dup (pipew_duped, 0); > > if (pipe->request_close_query_hdl ()) > > need_send_sig = true; > > } > > The code setting up pipes and the dummy_tty is sufficiently complex, > so that I wonder if it shouldn't have > > - its own methods and > - comments to describe why this stuff is necessary. > > What about adding two methods, kind of like (the names are only > suggestion, albeit bad ones): > > child_info_spawn::noncygwin_child_pre_fork() > > to keep the above stuff together (plus comments) and > > child_info_spawn::noncygwin_child_post_fork() > > for the below code? > > > @@ -597,6 +602,10 @@ child_info_spawn::worker (const char *prog_arg, const > > char *const *argv, > > { > > fhandler_pipe *pipe = (fhandler_pipe *)(fhandler_base *) cfd; > > pipe->set_pipe_non_blocking (false); > > + piper_duped = (fhandler_pipe *) > > + ccalloc (HEAP_FHANDLER, 1, sizeof (fhandler_pipe)); > > + piper_duped = new (piper_duped) fhandler_pipe; > > + pipe->dup (piper_duped, 0); > > } > > > > if (need_send_sig) > > @@ -905,6 +914,19 @@ child_info_spawn::worker (const char *prog_arg, const > > char *const *argv, > > term_spawn_worker.cleanup (); > > term_spawn_worker.close_handle_set (); > > } > > + if (pipew_duped) > > + { > > + bool is_nonblocking = pipew_duped->is_nonblocking (); > > + pipew_duped->set_pipe_non_blocking (is_nonblocking); > > Is that really right? You're asking pipew_duped for its > nonblocking flag and then set pipew_duped to the same value...? > > > + pipew_duped->close (); > > + cfree (pipew_duped); > > + }
Thanks for the reviewing and advice. I'll work for v2 patch. Please wait a while. -- Takashi Yano <takashi.y...@nifty.ne.jp>