MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / uv_loop_init

Function uv_loop_init

third-party/libuv-1.46.0/src/unix/loop.c:30–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28#include <unistd.h>
29
30int uv_loop_init(uv_loop_t* loop) {
31 uv__loop_internal_fields_t* lfields;
32 void* saved_data;
33 int err;
34
35
36 saved_data = loop->data;
37 memset(loop, 0, sizeof(*loop));
38 loop->data = saved_data;
39
40 lfields = (uv__loop_internal_fields_t*) uv__calloc(1, sizeof(*lfields));
41 if (lfields == NULL)
42 return UV_ENOMEM;
43 loop->internal_fields = lfields;
44
45 err = uv_mutex_init(&lfields->loop_metrics.lock);
46 if (err)
47 goto fail_metrics_mutex_init;
48 memset(&lfields->loop_metrics.metrics,
49 0,
50 sizeof(lfields->loop_metrics.metrics));
51
52 heap_init((struct heap*) &loop->timer_heap);
53 uv__queue_init(&loop->wq);
54 uv__queue_init(&loop->idle_handles);
55 uv__queue_init(&loop->async_handles);
56 uv__queue_init(&loop->check_handles);
57 uv__queue_init(&loop->prepare_handles);
58 uv__queue_init(&loop->handle_queue);
59
60 loop->active_handles = 0;
61 loop->active_reqs.count = 0;
62 loop->nfds = 0;
63 loop->watchers = NULL;
64 loop->nwatchers = 0;
65 uv__queue_init(&loop->pending_queue);
66 uv__queue_init(&loop->watcher_queue);
67
68 loop->closing_handles = NULL;
69 uv__update_time(loop);
70 loop->async_io_watcher.fd = -1;
71 loop->async_wfd = -1;
72 loop->signal_pipefd[0] = -1;
73 loop->signal_pipefd[1] = -1;
74 loop->backend_fd = -1;
75 loop->emfile_fd = -1;
76
77 loop->timer_counter = 0;
78 loop->stop_flag = 0;
79
80 err = uv__platform_loop_init(loop);
81 if (err)
82 goto fail_platform_init;
83
84 uv__signal_global_once_init();
85 err = uv__process_init(loop);
86 if (err)
87 goto fail_signal_init;

Callers

nothing calls this directly

Calls 13

uv__callocFunction · 0.85
uv__queue_initFunction · 0.85
uv__signal_loop_cleanupFunction · 0.85
uv__freeFunction · 0.85
uv_mutex_initFunction · 0.70
uv__platform_loop_initFunction · 0.70
uv__process_initFunction · 0.70
uv_rwlock_initFunction · 0.70
uv_async_initFunction · 0.70
uv_mutex_destroyFunction · 0.70
uv_rwlock_destroyFunction · 0.70

Tested by

no test coverage detected