[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081012143231.6ef9e590@merlin.oi.pg.gda.pl>
Date: Sun, 12 Oct 2008 14:32:31 +0200
From: Adam Tlałka <atlka@...gda.pl>
To: Alan Cox <alan@...rguk.ukuu.org.uk>
Cc: 7eggert@....de, linux-kernel@...r.kernel.org, torvalds@...l.org
Subject: Re: [PATCH 0/2] SIGWINCH problem with terminal apps still alive
Welcome,
generally speaking terminal resize could be made from vc or other
terminal device module code, from terminal ioctl on tty master
or tty slave. As we read the code we will see that the problem is to
use a proper mutex. Also we should use a one variable in which we set
terminal sizes. So in case of tty master and slave we have tty and
real_tty structures. TIOCSWINSZ and TIOCGWINSZ ioctls could be
called on tty and real_tty at the same time. To avoid race condition
we should use a mutex. But this must be the same mutex in all cases
- tty or real_tty. For the best we should also use the same
winsize variable. Proposed previously code change only simplifies
the code and eliminates SIGWINCH signal race but an app could read
terminal sizes at any time so this patch not closes all race
possibilities. So I propose a patch in which we have some code
movements and always use real_tty->termios_mutex and also
real_tty->winsize. In no pty case tty == real_tty so it works properly
as before and in pty situaction we use the same mutex and variable so
it removes all race conditions according to access to winsize now.
Signed-off-by: Adam Tla/lka <atlka@...gda.pl>
Regards
--
Adam Tlałka mailto:atlka@...gda.pl ^v^ ^v^ ^v^
System & Network Administration Group - - - ~~~~~~
Computer Center, Gdańsk University of Technology, Poland
View attachment "2.6.27_tty_io_2.patch" of type "text/x-patch" (1720 bytes)
Powered by blists - more mailing lists