xref: /libuv/docs/src/idle.rst (revision 25368e2d)
1
2.. _idle:
3
4:c:type:`uv_idle_t` --- Idle handle
5===================================
6
7Idle handles will run the given callback once per loop iteration, right
8before the :c:type:`uv_prepare_t` handles.
9
10.. note::
11    The notable difference with prepare handles is that when there are active idle handles,
12    the loop will perform a zero timeout poll instead of blocking for i/o.
13
14.. warning::
15    Despite the name, idle handles will get their callbacks called on every loop iteration,
16    not when the loop is actually "idle".
17
18
19Data types
20----------
21
22.. c:type:: uv_idle_t
23
24    Idle handle type.
25
26.. c:type:: void (*uv_idle_cb)(uv_idle_t* handle)
27
28    Type definition for callback passed to :c:func:`uv_idle_start`.
29
30
31Public members
32^^^^^^^^^^^^^^
33
34N/A
35
36.. seealso:: The :c:type:`uv_handle_t` members also apply.
37
38
39API
40---
41
42.. c:function:: int uv_idle_init(uv_loop_t* loop, uv_idle_t* idle)
43
44    Initialize the handle. This function always succeeds.
45
46    :returns: 0
47
48.. c:function:: int uv_idle_start(uv_idle_t* idle, uv_idle_cb cb)
49
50    Start the handle with the given callback. This function always succeeds,
51    except when `cb` is `NULL`.
52
53    :returns: 0 on success, or `UV_EINVAL` when `cb == NULL`.
54
55.. c:function:: int uv_idle_stop(uv_idle_t* idle)
56
57    Stop the handle, the callback will no longer be called.
58    This function always succeeds.
59
60    :returns: 0
61
62.. seealso:: The :c:type:`uv_handle_t` API functions also apply.
63