poll()/select() on a tty fd in a backgrounded process raises SIGTTIN
Jon Turney
jon.turney@dronecode.org.uk
Mon Jul 25 16:52:00 GMT 2016
>> This test case is reduced from a problem seen with gdb, since commit
>> 0b333c5e, where gdb stops with SIGTTIN when the inferior is started.
>
> Did you find out where it stops and do you have any ideas how we could
> fix this?
Um.
gdb stops because a poll() on stdin (even when stdin is not ready to
read) while backgrounded causes a SIGTTIN to be raised.
I think this caused by select.cc:peek_console/peek_pipe calling
fhandler_termios::bg_check(SIGTTIN).
My idea for fixing it is to remove that behaviour from cygwin, assuming
I'm right in thinking that the behaviour is incorrect, although I'm wary
of touching something that's so old, and I don't understand why that
call to bg_check is in there at all...
More information about the Cygwin-developers
mailing list