The UNIX signalling mechanism is implemented for the GNU Hurd by means of a separate signal thread that is part of every user-space process. This makes handling of signals a separate thread of control. GNU Mach itself has no idea what a signal is and kill is not a system call (as it typically is in a UNIX system): it's implemented in glibc.

  • ?SA SIGINFO, SA SIGACTION

  • 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 synchronization
    

    open issue glibc

  • Critical Sections

Further Reading