mirror of https://github.com/mkerrisk/man-pages
signal.7: srcfix: note commit hash for futex() restart behavior change
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
f2aa4dcc8e
commit
4b139190f9
|
@ -646,25 +646,6 @@ calls on "slow" devices.
|
||||||
A "slow" device is one where the I/O call may block for an
|
A "slow" device is one where the I/O call may block for an
|
||||||
indefinite time, for example, a terminal, pipe, or socket.
|
indefinite time, for example, a terminal, pipe, or socket.
|
||||||
(A disk is not a slow device according to this definition.)
|
(A disk is not a slow device according to this definition.)
|
||||||
A
|
|
||||||
.BR read (2)
|
|
||||||
on an
|
|
||||||
.BR eventfd (2),
|
|
||||||
.BR signalfd (2),
|
|
||||||
.BR timerfd (2),
|
|
||||||
.BR fanotify (7),
|
|
||||||
or
|
|
||||||
.BR inotify (7)
|
|
||||||
file descriptor is also considered to be a "slow" operation.
|
|
||||||
(Before Linux 3.8,
|
|
||||||
.\" commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
|
|
||||||
reads from an
|
|
||||||
.BR inotify (7)
|
|
||||||
file descriptor were not restartable;
|
|
||||||
when interrupted by a signal handler,
|
|
||||||
.BR read (2)
|
|
||||||
always failed with the error
|
|
||||||
.BR EINTR .)
|
|
||||||
If an I/O call on a slow device has already transferred some
|
If an I/O call on a slow device has already transferred some
|
||||||
data by the time it is interrupted by a signal handler,
|
data by the time it is interrupted by a signal handler,
|
||||||
then the call will return a success status
|
then the call will return a success status
|
||||||
|
@ -695,7 +676,7 @@ Socket interfaces:
|
||||||
.BR send (2),
|
.BR send (2),
|
||||||
.BR sendto (2),
|
.BR sendto (2),
|
||||||
and
|
and
|
||||||
.\" FIXME . What about sendmmsg()?
|
.\" FIXME What about sendmmsg()?
|
||||||
.BR sendmsg (2),
|
.BR sendmsg (2),
|
||||||
unless a timeout has been set on the socket (see below).
|
unless a timeout has been set on the socket (see below).
|
||||||
.IP *
|
.IP *
|
||||||
|
@ -718,7 +699,9 @@ and
|
||||||
.IP *
|
.IP *
|
||||||
.BR futex (2)
|
.BR futex (2)
|
||||||
.B FUTEX_WAIT
|
.B FUTEX_WAIT
|
||||||
(since Linux 2.6.22; beforehand, always failed with
|
(since Linux 2.6.22;
|
||||||
|
.\" commit 72c1bbf308c75a136803d2d76d0e18258be14c7a
|
||||||
|
beforehand, always failed with
|
||||||
.BR EINTR ).
|
.BR EINTR ).
|
||||||
.IP *
|
.IP *
|
||||||
.BR getrandom (2).
|
.BR getrandom (2).
|
||||||
|
@ -727,11 +710,16 @@ and
|
||||||
.BR pthread_cond_wait (3),
|
.BR pthread_cond_wait (3),
|
||||||
and related APIs.
|
and related APIs.
|
||||||
.IP *
|
.IP *
|
||||||
|
.BR futex (2)
|
||||||
|
.BR FUTEX_WAIT_BITSET .
|
||||||
|
.IP *
|
||||||
POSIX semaphore interfaces:
|
POSIX semaphore interfaces:
|
||||||
.BR sem_wait (3)
|
.BR sem_wait (3)
|
||||||
and
|
and
|
||||||
.BR sem_timedwait (3)
|
.BR sem_timedwait (3)
|
||||||
(since Linux 2.6.22; beforehand, always failed with
|
(since Linux 2.6.22;
|
||||||
|
.\" as a consequence of the 2.6.22 changes in the futex() implementation
|
||||||
|
beforehand, always failed with
|
||||||
.BR EINTR ).
|
.BR EINTR ).
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
|
@ -761,14 +749,14 @@ and
|
||||||
.BR recvmsg (2).
|
.BR recvmsg (2).
|
||||||
.IP *
|
.IP *
|
||||||
"Output" socket interfaces, when a timeout
|
"Output" socket interfaces, when a timeout
|
||||||
.RB ( SO_SNDTIMEO )
|
.RB ( SO_RCVTIMEO )
|
||||||
has been set on the socket using
|
has been set on the socket using
|
||||||
.BR setsockopt (2):
|
.BR setsockopt (2):
|
||||||
.BR connect (2),
|
.BR connect (2),
|
||||||
.BR send (2),
|
.BR send (2),
|
||||||
.BR sendto (2),
|
.BR sendto (2),
|
||||||
and
|
and
|
||||||
.\" FIXME . What about sendmmsg()?
|
.\" FIXME What about sendmmsg()?
|
||||||
.BR sendmsg (2).
|
.BR sendmsg (2).
|
||||||
.IP *
|
.IP *
|
||||||
Interfaces used to wait for signals:
|
Interfaces used to wait for signals:
|
||||||
|
@ -801,6 +789,11 @@ Sleep interfaces:
|
||||||
and
|
and
|
||||||
.BR usleep (3).
|
.BR usleep (3).
|
||||||
.IP *
|
.IP *
|
||||||
|
.BR read (2)
|
||||||
|
from an
|
||||||
|
.BR inotify (7)
|
||||||
|
file descriptor.
|
||||||
|
.IP *
|
||||||
.BR io_getevents (2).
|
.BR io_getevents (2).
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
|
@ -836,15 +829,18 @@ and
|
||||||
.BR recvmsg (2).
|
.BR recvmsg (2).
|
||||||
.IP *
|
.IP *
|
||||||
"Output" socket interfaces, when a timeout
|
"Output" socket interfaces, when a timeout
|
||||||
.RB ( SO_SNDTIMEO )
|
.RB ( SO_RCVTIMEO )
|
||||||
has been set on the socket using
|
has been set on the socket using
|
||||||
.BR setsockopt (2):
|
.BR setsockopt (2):
|
||||||
.BR connect (2),
|
.BR connect (2),
|
||||||
.BR send (2),
|
.BR send (2),
|
||||||
.BR sendto (2),
|
.BR sendto (2),
|
||||||
and
|
and
|
||||||
.\" FIXME . What about sendmmsg()?
|
.\" FIXME What about sendmmsg()?
|
||||||
.BR sendmsg (2).
|
.BR sendmsg (2),
|
||||||
|
if a send timeout
|
||||||
|
.RB ( SO_SNDTIMEO )
|
||||||
|
has been set.
|
||||||
.IP * 2
|
.IP * 2
|
||||||
.BR epoll_wait (2),
|
.BR epoll_wait (2),
|
||||||
.BR epoll_pwait (2).
|
.BR epoll_pwait (2).
|
||||||
|
@ -855,8 +851,6 @@ and
|
||||||
.BR sigtimedwait (2),
|
.BR sigtimedwait (2),
|
||||||
.BR sigwaitinfo (2).
|
.BR sigwaitinfo (2).
|
||||||
.IP *
|
.IP *
|
||||||
Linux 3.7 and earlier:
|
|
||||||
.\" commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
|
|
||||||
.BR read (2)
|
.BR read (2)
|
||||||
from an
|
from an
|
||||||
.BR inotify (7)
|
.BR inotify (7)
|
||||||
|
@ -903,7 +897,6 @@ POSIX.1, except as noted.
|
||||||
.BR signalfd (2),
|
.BR signalfd (2),
|
||||||
.BR sigpending (2),
|
.BR sigpending (2),
|
||||||
.BR sigprocmask (2),
|
.BR sigprocmask (2),
|
||||||
.BR sigreturn (2),
|
|
||||||
.BR sigsuspend (2),
|
.BR sigsuspend (2),
|
||||||
.BR sigwaitinfo (2),
|
.BR sigwaitinfo (2),
|
||||||
.BR abort (3),
|
.BR abort (3),
|
||||||
|
|
Loading…
Reference in New Issue