shithub: riscv

ref: a3c75553b4c50247ce22a4da4d2a87c10d5b0835
dir: /sys/man/9/delay/

View raw version
.TH DELAY 9
.SH NAME
delay, microdelay, addclock0link \- small delays, clock interrupts
.SH SYNOPSIS
.ta \w'\fLTimer* 'u
.B
void	delay(int ms)
.PP
.B
void	microdelay(int µs)
.PP
.B
Timer*	addclock0link(void(*clockf)(void), int ms)
.SH DESCRIPTION
.I Delay
busy waits for
.I ms
milliseconds. The minimum value of
.I ms
is one on most architectures.
.PP
.I Microdelay
works exactly the same as
.I delay
but using microseconds instead.
.PP
These routines are intended for use in interrupt contexts,
device reset and shutdown functions, and other places where
the scheduler is unavailable.
When you have a process context, and can sleep, consider
.IR tsleep (9).
.I Tsleep
does not busy wait.
.PP
.I Addclock0link
adds a new periodic timer to the current processor's timer list, with
.I clockf
executing every
.I ms
milliseconds. If
.I ms
is zero a default clock is used, it will panic otherwise (i.e.
.I ms
< 0).
.SH SOURCE
.B /sys/src/9/port/portclock.c
.br
.B /sys/src/9/*/clock.c
.SH SEE ALSO
.IR sleep (9)