blob: a8ded356066d0b448822f3bd74de8fcc0c64e93a [file] [log] [blame] [view]
# Timer
## NAME
timer - An object that may be signaled at some point in the future
## SYNOPSIS
A timer is used to wait until a specified point in time has occurred
or the timer has been canceled.
## DESCRIPTION
Like other waitable objects, timers can be waited on via
[`zx_object_wait_one()`], [`zx_object_wait_many()`], or
[`zx_object_wait_async()`].
A given timer can be used over and over.
Once **ZX_TIMER_SIGNALED** is asserted, it will remain asserted until
the timer is canceled ([`zx_timer_cancel()`]) or reset ([`zx_timer_set()`]).
The typical lifecycle is:
1. `zx_timer_create()`
2. `zx_timer_set()`
3. wait for the timer to be signaled
4. optionally reset and reuse the timer (i.e. goto #2)
5. `zx_handle_close()`
## SYSCALLS
- [`zx_timer_create()`] - create a timer
- [`zx_timer_set()`] - set a timer
- [`zx_timer_cancel()`] - cancel a timer
## SEE ALSO
+ [timer slack](/docs/concepts/kernel/timer_slack.md)
[`zx_object_wait_one()`]: /reference/syscalls/object_wait_one.md
[`zx_object_wait_many()`]: /reference/syscalls/object_wait_many.md
[`zx_object_wait_async()`]: /reference/syscalls/object_wait_async.md
[`zx_timer_create()`]: /reference/syscalls/timer_create.md
[`zx_timer_set()`]: /reference/syscalls/timer_set.md
[`zx_timer_cancel()`]: /reference/syscalls/timer_cancel.md