Change sigTTOU/TTIN to IGNORE by default

Simon Marlow simonmar at microsoft.com
Tue Jan 16 05:17:52 EST 2001


> You're right. ``tcsetattr'' doesn't affect the ``TOSTOP'' flag, but it
> sends a SIGTTOU, when invoked from a background process.  This, in
> turn, causes the process to suspend unless SIGTTOU is blocked or
> ignored!
> 
> SUSv2 says, this is the correct behaviour:
> http://www.opennc.org/onlinepubs/007908799/xsh/tcsetattr.html:
> [...]
> 	Attempts to use tcsetattr() from a process which is a member
> 	of a background process group on a fildes associated with its
> 	controlling terminal, will cause the process group to be sent
> 	a SIGTTOU signal. If the calling process is blocking or
> 	ignoring SIGTTOU signals, the process is allowed to perform
> 	the operation, and no signal is sent.
> [...]

Thanks Michael.  The Solaris man page has this exact same paragraph,
although I can find no mention of this behaviour in the POSIX book I
have, the Linux man pages (surprise :-) or the Glibc docs.

FreeBSD termios(4) has this:

     Certain calls that set terminal parameters are treated in the
     same fashion as write, except that TOSTOP is ignored; that is,
     the effect is identical to that of terminal writes when TOSTOP
     is set.

which makes a lot more sense.

I guess it's another one of those dark corners that Volker seems to
wonder into with alarming regularity :)

Cheers,
	Simon




More information about the Glasgow-haskell-bugs mailing list