diff options
| author | Michael Kerrisk <mtk.manpages@gmail.com> | 2008-07-04 13:15:12 +0000 |
|---|---|---|
| committer | Michael Kerrisk <mtk.manpages@gmail.com> | 2008-07-04 13:15:12 +0000 |
| commit | 48b9ec3fe1e44b6a2c1feea09db3ada4487e41ab (patch) | |
| tree | 96413953c3cbee7009e780701f97d4d66de53c37 | |
| parent | af3c87d084df1cfd8dcafc0c7ebc8a3d71a0a0b3 (diff) | |
| download | man-pages-48b9ec3fe1e44b6a2c1feea09db3ada4487e41ab.tar.gz | |
Describe the aberrant Linux behavior whereby a stop signal
plus SIGCONT can interrupt some system calls, even if no
signal handler has been established, and note the system
calls that behave this way.
| -rw-r--r-- | man7/signal.7 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/man7/signal.7 b/man7/signal.7 index bce203bcde..09f5b92aed 100644 --- a/man7/signal.7 +++ b/man7/signal.7 @@ -608,6 +608,46 @@ file descriptor. .IP * .BR io_getevents (2). .RE +.SS Interruption of System Calls and Library Functions by Stop Signals +On Linux, even in the absence of signal handlers, +certain blocking interfaces can fail with the error +.BR EINTR +after the process is stopped by one of the stop signals +and then resumed via +.BR SIGCONT . +This behavior is not sanctioned by POSIX.1, and doesn't occur +on other systems. + +The Linux interfaces that display this behavior are: +.RS 4 +.IP * 2 +.BR epoll_wait (2), +.BR epoll_pwait (2). +.IP * +.BR semop (2), +.BR semtimedop (2). +.IP * +.BR sigtimedwait (2), +.BR sigwaitinfo (2). +.IP * +.BR read (2) +from an +.BR inotify (7) +file descriptor. +.IP * +Linux 2.6.21 and earlier: +.BR futex (2) +.BR FUTEX_WAIT , +.BR sem_timedwait (3), +.BR sem_wait (3). +.IP * +Linux 2.6.8 and earlier: +.BR msgrcv (2), +.BR msgsnd (2). +.IP * +Linux 2.4 and earlier: +.BR nanosleep (2). +.RE .SH "CONFORMING TO" POSIX.1 .SH BUGS |
