shithub: riscv

ref: 025a2d172ebfe36bc0da32f5712dd250916c73f1
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)