comparison third_party/libuv/docs/src/async.rst @ 160:948de3f54cea

[ThirdParty] Added libuv
author June Park <parkjune1995@gmail.com>
date Wed, 14 Jan 2026 19:39:52 -0800
parents
children
comparison
equal deleted inserted replaced
159:05cf9467a1c3 160:948de3f54cea
1
2 .. _async:
3
4 :c:type:`uv_async_t` --- Async handle
5 =====================================
6
7 Async handles allow the user to "wakeup" the event loop and get a callback
8 called from another thread.
9
10
11 Data types
12 ----------
13
14 .. c:type:: uv_async_t
15
16 Async handle type.
17
18 .. c:type:: void (*uv_async_cb)(uv_async_t* handle)
19
20 Type definition for callback passed to :c:func:`uv_async_init`.
21
22
23 Public members
24 ^^^^^^^^^^^^^^
25
26 N/A
27
28 .. seealso:: The :c:type:`uv_handle_t` members also apply.
29
30
31 API
32 ---
33
34 .. c:function:: int uv_async_init(uv_loop_t* loop, uv_async_t* async, uv_async_cb async_cb)
35
36 Initialize the handle. A NULL callback is allowed.
37
38 :returns: 0 on success, or an error code < 0 on failure.
39
40 .. note::
41 Unlike other handle initialization functions, it immediately starts the handle.
42
43 .. c:function:: int uv_async_send(uv_async_t* async)
44
45 Wake up the event loop and call the async handle's callback.
46
47 :returns: 0 on success, or an error code < 0 on failure.
48
49 .. note::
50 It's safe to call this function from any thread. The callback will be called on the
51 loop thread.
52
53 .. note::
54 :c:func:`uv_async_send` is `async-signal-safe <https://man7.org/linux/man-pages/man7/signal-safety.7.html>`_.
55 It's safe to call this function from a signal handler.
56
57 .. warning::
58 libuv will coalesce calls to :c:func:`uv_async_send`, that is, not every call to it will
59 yield an execution of the callback. For example: if :c:func:`uv_async_send` is called 5
60 times in a row before the callback is called, the callback will only be called once. If
61 :c:func:`uv_async_send` is called again after the callback was called, it will be called
62 again.
63
64 .. seealso::
65 The :c:type:`uv_handle_t` API functions also apply.