| .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). |