.\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl)
.\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
.\"
-.TH UALARM 3 2008-08-06 "" "Linux Programmer's Manual"
+.TH UALARM 3 2013-12-23 "" "Linux Programmer's Manual"
.SH NAME
ualarm \- schedule signal after given number of microseconds
.SH SYNOPSIS
.in
.sp
.BR ualarm ():
-_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500
+.ad l
+.RS 4
+.PD 0
+.TP 4
+Since glibc 2.12:
+.nf
+_BSD_SOURCE ||
+ (_XOPEN_SOURCE\ >=\ 500 ||
+ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED) &&
+ !(_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700)
+.TP 4
+.fi
+Before glibc 2.12:
+_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 ||
+_XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
+.PD
+.RE
+.ad b
.SH DESCRIPTION
The
.BR ualarm ()
signals will be sent every
.I interval
microseconds after the first.
-.SH "RETURN VALUE"
+.SH RETURN VALUE
This function returns the number of microseconds remaining for
any alarm that was previously set, or 0 if no alarm was pending.
.SH ERRORS
.B EINVAL
\fIusecs\fP or \fIinterval\fP is not smaller than 1000000.
(On systems where that is considered an error.)
-.SH "CONFORMING TO"
+.SH ATTRIBUTES
+.SS Multithreading (see pthreads(7))
+The
+.BR ualarm ()
+function is thread-safe.
+.SH CONFORMING TO
4.3BSD, POSIX.1-2001.
POSIX.1-2001 marks
.BR ualarm ()
.BR ualarm ().
4.3BSD, SUSv2, and POSIX do not define any errors.
.SH NOTES
+POSIX.1-2001 does not specify what happens if the
+.I usecs
+argument is 0.
+.\" This case is not documented in HP-US, Solar, FreeBSD, NetBSD, or OpenBSD!
+On Linux (and probably most other systems),
+the effect is to cancel any pending alarm.
+
The type
.I useconds_t
is an unsigned integer type capable of holding integers
.RB ( timer_create (2),
etc.)
instead.
-.SH "SEE ALSO"
+.SH SEE ALSO
.BR alarm (2),
.BR getitimer (2),
.BR nanosleep (2),
.BR setitimer (2),
.BR usleep (3),
.BR time (7)
+.SH COLOPHON
+This page is part of release 3.65 of the Linux
+.I man-pages
+project.
+A description of the project,
+and information about reporting bugs,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.