| .TH SLEEP 3 | 
 | .SH NAME | 
 | sleep, alarm \- delay, ask for delayed note | 
 | .SH SYNOPSIS | 
 | .B #include <u.h> | 
 | .br | 
 | .B #include <libc.h> | 
 | .PP | 
 | .B | 
 | int sleep(long millisecs) | 
 | .PP | 
 | .B | 
 | long alarm(unsigned long millisecs) | 
 | .SH DESCRIPTION | 
 | .I Sleep | 
 | suspends the current process for the number | 
 | of milliseconds specified by the argument. | 
 | The actual suspension time may be a little more or less than | 
 | the requested time. If | 
 | .I millisecs | 
 | is 0, the process | 
 | gives up the CPU if another process is waiting to run, returning | 
 | immediately if not. | 
 | Sleep returns \-1 if interrupted, 0 otherwise. | 
 | .PP | 
 | .I Alarm | 
 | causes an | 
 | .B alarm | 
 | note (see | 
 | .IR notify (3)) | 
 | to be sent to the invoking process after the number of milliseconds | 
 | given by the argument. | 
 | Successive calls to | 
 | .I alarm | 
 | reset the alarm clock. | 
 | A zero argument clears the alarm. | 
 | The return value is the amount of time previously remaining in | 
 | the alarm clock. | 
 | .SH SOURCE | 
 | .B \*9/src/lib9/sleep.c | 
 | .SH SEE ALSO | 
 | .IR intro (3) | 
 | .SH DIAGNOSTICS | 
 | These functions set | 
 | .IR errstr . | 
 | .SH BUGS | 
 | To avoid name conflicts with the underlying system, | 
 | .I sleep | 
 | and | 
 | .I alarm | 
 | are preprocessor macros defined as | 
 | .I p9sleep | 
 | and | 
 | .IR p9alarm ; | 
 | see | 
 | .IR intro (3). |