Egbert Eich <[email protected]> さんはかきました: > From: Mike Fabian <[email protected]> > > After the fork it is undefined wether parent or child runs > first. So there can be a race: if the child runs before the > terminal of the parent is set up correctly luit may hang. > This patch sets up the terminal before forking and undoes > the settings in the child. > > Signed-off-by: Egbert Eich <[email protected]>
Signed-off-by: Mike FABIAN <[email protected]> > --- > luit.c | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/luit.c b/luit.c > index 0ece7b6..5cb3b8f 100644 > --- a/luit.c > +++ b/luit.c > @@ -577,6 +577,8 @@ condom(int argc, char **argv) > IGNORE_RC(pipe(c2p_waitpipe)); > } > > + setup_io(pty); > + > pid = fork(); > if (pid < 0) { > perror("Couldn't fork"); > @@ -584,6 +586,10 @@ condom(int argc, char **argv) > } > > if (pid == 0) { > +#ifdef SIGWINCH > + installHandler(SIGWINCH, SIG_DFL); > +#endif > + installHandler(SIGCHLD, SIG_DFL); > close(pty); > if (pipe_option) { > close_waitpipe(1); > @@ -661,7 +667,6 @@ parent(int pid GCC_UNUSED, int pty) > if (verbose) { > reportIso2022(outputState); > } > - setup_io(pty); > > if (pipe_option) { > write_waitpipe(p2c_waitpipe); -- Mike FABIAN <[email protected]> ☏ Office: +49-69-365051027, internal 8875027 睡眠不足はいい仕事の敵だ。 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
