LINUX.ORG.RU

История изменений

Исправление pon4ik, (текущая версия) :

На самом деле всё ещё проще (man 7 signal) :

Interruption of system calls and library functions by signal handlers
       If a signal handler is invoked while a system call or library
       function call is blocked, then either:

       * the call is automatically restarted after the signal handler
         returns; or

       * the call fails with the error EINTR.

       Which of these two behaviors occurs depends on the interface and
       whether or not the signal handler was established using the
       SA_RESTART flag (see sigaction(2)).  The details vary across UNIX
       systems; below, the details for Linux.

       If a blocked call to one of the following interfaces is interrupted
       by a signal handler, then the call is automatically restarted after
       the signal handler returns if the SA_RESTART flag was used; otherwise
       the call fails with the error EINTR:

А gdb использует sigtrap как минимум для бряков.

Исходная версия pon4ik, :

На самом деле всё ещё проще (man 7 signal) :

Interruption of system calls and library functions by signal handlers
       If a signal handler is invoked while a system call or library
       function call is blocked, then either:

       * the call is automatically restarted after the signal handler
         returns; or

       * the call fails with the error EINTR.

       Which of these two behaviors occurs depends on the interface and
       whether or not the signal handler was established using the
       SA_RESTART flag (see sigaction(2)).  The details vary across UNIX
       systems; below, the details for Linux.

       If a blocked call to one of the following interfaces is interrupted
       by a signal handler, then the call is automatically restarted after
       the signal handler returns if the SA_RESTART flag was used; otherwise
       the call fails with the error EINTR: