Some bits about this, some bits about that.

Controlling TTY

Hurd controlling tty behavior is generally consistent with BSD's, including TIOCSCTTY. Linux also has TIOCSCTTY and it is harmless to use it there. But BSD and Hurd never do an implicit TIOCSCTTY (hence our O_NOCTTY is zero).

C.f. http://lists.gnu.org/archive/html/bug-hurd/2009-10/msg00030.html and the following messages.

Sinals

Unix signals are implemented in glibc.

In every process, signals are handled in a separate signal thread.

[Why does kill hang sometimes?]
<youpi> kill send the signal to the process
<youpi> if the process is hung, killing waits
<youpi> signals should be just asynchronous, but apparently for some reason
  Roland & co wanted some syunchronization

open issue glibc