BSD 4_3_Net_2 release
[unix-history] / usr / src / lib / libc / gen / usleep.3
index e04128e..0ab8fe5 100644 (file)
@@ -1,40 +1,85 @@
-.\" Copyright (c) 1980 Regents of the University of California.
-.\" All rights reserved.  The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
+.\" Copyright (c) 1986, 1991 Regents of the University of California.
+.\" All rights reserved.
 .\"
 .\"
-.\"    @(#)@(#)usleep.3        6.3 (Berkeley) %G%
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
 .\"
-.TH USLEEP 3  ""
-.UC 6
-.SH NAME
-usleep \- suspend execution for interval
-.SH SYNOPSIS
-.nf
-.B usleep(useconds)
-.B unsigned useconds;
-.fi
-.SH DESCRIPTION
-The current process is suspended from execution for the number
-of microseconds specified by the argument.
-The actual suspension time may be an arbitrary amount longer
-because of other activity in the system
-or because of the time spent in processing the call.
-.PP
-The routine is implemented by setting an interval timer
-and pausing until it occurs.
-The previous state of this timer is saved and restored.
-If the sleep time exceeds the time to the expiration of the
-previous timer,
-the process sleeps only until the signal would have occurred, and the
-signal is sent a short time later.
-.PP
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     @(#)usleep.3   6.4 (Berkeley) 4/19/91
+.\"
+.Dd April 19, 1991
+.Dt USLEEP 3
+.Os BSD 4.3
+.Sh NAME
+.Nm usleep
+.Nd suspend execution for interval of microseconds
+.Sh SYNOPSIS
+.Fd #include <unistd.h>
+.Ft void
+.Fn usleep "u_int microseconds"
+.Sh DESCRIPTION
+The
+.Fn sleep
+function
+suspends execution of the calling process
+for
+.Fa microseconds
+of time.
+System activity or time spent in processing the
+call may lengthen the sleep slightly.
+.Pp
+If a timer is already running on the process its state is saved.
+If the value
+.Fa microseconds
+is more than or equal to the remaining clock time for the saved timer,
+the sleep time is set to
+the remaining clock time.
+The state of the previous timer
+is restored after
+.Fa microseconds
+has passed.
+.Pp
 This routine is implemented using 
 This routine is implemented using 
-.IR setitimer (2);
+.Xr setitimer 2 ;
 it requires eight system calls each time it is invoked.
 A similar but less compatible function can be obtained with a single
 it requires eight system calls each time it is invoked.
 A similar but less compatible function can be obtained with a single
-.IR select (2);
-it would not restart after signals, but would not interfere
+.Xr select 2 ;
+such a function would not restart after signals, but would not interfere
 with other uses of
 with other uses of
-.IR setitimer . 
-.SH "SEE ALSO"
-setitimer(2), getitimer(2), sigpause(2), ualarm(3), sleep(3), alarm(3)
+.Xr setitimer .
+.Sh SEE ALSO
+.Xr setitimer 2 ,
+.Xr getitimer 2 ,
+.Xr sigpause 2 ,
+.Xr ualarm 3 ,
+.Xr sleep 3 ,
+.Xr alarm 3
+.Sh HISTORY
+The
+.Fn usleep
+function appeared in 
+.Bx 4.3 .