Mention the return type -- don't confuse lint.
[unix-history] / usr / src / lib / libc / gen / ualarm.3
.\" Copyright (c) 1980 Regents of the University of California.
.\" All rights reserved. The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
.\" @(#)@(#)ualarm.3 6.2 (Berkeley) %G%
.\"
.TH UALARM 3 ""
.UC 6
.SH NAME
ualarm \- schedule signal after specified time
.SH SYNOPSIS
.nf
.B unsigned ualarm(value, interval)
.B unsigned value;
.B unsigned interval;
.fi
.SH DESCRIPTION
.ft B
This is a simplified interface to setitimer(2).
.ft R
.PP
.I Ualarm
causes signal SIGALRM, see
.IR signal (3C),
to be sent to the invoking process
in a number of microseconds given by the
.I value
argument.
Unless caught or ignored, the signal terminates the process.
.PP
If the
.I interval
argument is non-zero, the SIGALRM signal will be sent
to the process every
.I interval
microseconds after the timer expires (e.g. after
.I value
microseconds have passed).
.PP
Because of scheduling delays,
resumption of execution of when the signal is
caught may be delayed an arbitrary amount.
The longest specifiable delay time (on the vax) is 2147483647 microseconds.
.PP
The return value is the amount of time previously remaining in the alarm clock.
.sh BUGS
This routine is expensive to use because it is implemented using
.IR setitimer (2)
and does eight system calls each time it is invoked.
.SH "SEE ALSO"
getitimer(2), setitimer(2), sigpause(2), sigvec(2), signal(3C), sleep(3),
alarm(3), ualarm(3)