git: 9front

ref: fec4a9bb8344e98a093bd6c04f5d8d9a19c3383e
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)