Go to the documentation of this file.
65 static void uv__signal_global_init(
void) {
101 uv__signal_global_fini();
122 }
while (
r < 0 && errno == EINTR);
124 return (
r < 0) ? -1 : 0;
134 }
while (
r < 0 && errno == EINTR);
136 return (
r < 0) ? -1 : 0;
143 if (sigfillset(&new_mask))
146 if (pthread_sigmask(SIG_SETMASK, &new_mask, saved_sigmask))
158 if (pthread_sigmask(SIG_SETMASK, saved_sigmask, NULL))
208 }
while (
r == -1 && errno == EINTR);
210 assert(
r ==
sizeof msg ||
211 (
r == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)));
227 memset(&sa, 0,
sizeof(sa));
228 if (sigfillset(&sa.sa_mask))
233 sa.sa_flags |= SA_RESETHAND;
236 if (sigaction(signum, &sa, NULL))
247 memset(&sa, 0,
sizeof(sa));
248 sa.sa_handler = SIG_DFL;
254 if (sigaction(signum, &sa, NULL))
263 if (
loop->signal_pipefd[0] != -1)
272 loop->signal_pipefd[0]);
283 loop->signal_pipefd[0] = -1;
284 loop->signal_pipefd[1] = -1;
301 if (
handle->type == UV_SIGNAL)
305 if (
loop->signal_pipefd[0] != -1) {
307 loop->signal_pipefd[0] = -1;
310 if (
loop->signal_pipefd[1] != -1) {
312 loop->signal_pipefd[1] = -1;
326 handle->caught_signals = 0;
327 handle->dispatched_signals = 0;
354 sigset_t saved_sigmask;
372 if (signum ==
handle->signum) {
378 if (
handle->signum != 0) {
389 if (first_handle == NULL ||
416 unsigned int events) {
429 if (
r == -1 && errno == EINTR)
432 if (
r == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
462 handle->dispatched_signals++;
477 }
while (
end ==
sizeof buf);
495 if (
f1 <
f2)
return -1;
496 if (
f1 >
f2)
return 1;
501 if (w1->loop < w2->loop)
return -1;
502 if (w1->loop > w2->loop)
return 1;
504 if (w1 < w2)
return -1;
505 if (w1 > w2)
return 1;
520 sigset_t saved_sigmask;
533 assert(removed_handle ==
handle);
534 (void) removed_handle;
540 if (first_handle == NULL) {
545 if (first_oneshot && !rem_oneshot) {
#define uv__is_closing(h)
void(* uv_signal_cb)(uv_signal_t *handle, int signum)
return memset(p, 0, total)
#define RB_REMOVE(name, x, y)
static void uv__signal_stop(uv_signal_t *handle)
static uv_signal_t * uv__signal_first_handle(int signum)
static int uv__signal_start(uv_signal_t *handle, uv_signal_cb signal_cb, int signum, int oneshot)
void uv__io_init(uv__io_t *w, uv__io_cb cb, int fd)
#define QUEUE_DATA(ptr, type, field)
static void uv__signal_handler(int signum)
static int uv__signal_compare(uv_signal_t *w1, uv_signal_t *w2)
static int uv__signal_loop_once_init(uv_loop_t *loop)
int uv__signal_loop_fork(uv_loop_t *loop)
RB_HEAD(uv__signal_tree_s, uv_signal_s)
#define RB_NFIND(name, x, y)
int uv_signal_stop(uv_signal_t *handle)
#define RB_NEXT(name, x, y)
UV_EXTERN void uv_once(uv_once_t *guard, void(*callback)(void))
void uv__io_start(uv_loop_t *loop, uv__io_t *w, unsigned int events)
static void uv__signal_event(uv_loop_t *loop, uv__io_t *w, unsigned int events)
static void signal_cb(uv_signal_t *signal, int signum)
int uv_signal_start(uv_signal_t *handle, uv_signal_cb signal_cb, int signum)
int uv__make_pipe(int fds[2], int flags)
static int uv__signal_lock(void)
#define RB_INSERT(name, x, y)
#define uv__handle_init(loop_, h, type_)
void uv__signal_global_once_init(void)
static void uv__signal_unlock_and_unblock(sigset_t *saved_sigmask)
int uv_signal_start_oneshot(uv_signal_t *handle, uv_signal_cb signal_cb, int signum)
int uv_signal_init(uv_loop_t *loop, uv_signal_t *handle)
static void uv__signal_global_reinit(void)
int read(izstream &zs, T *x, Items items)
static int uv__signal_register_handler(int signum, int oneshot)
UV_DESTRUCTOR(static void uv__signal_global_fini(void))
static int uv__signal_lock_pipefd[2]
UniquePtr< SSL_SESSION > ret
void uv__signal_loop_cleanup(uv_loop_t *loop)
#define QUEUE_FOREACH(q, h)
static void uv__signal_unregister_handler(int signum)
static bool lookup(const upb_table *t, lookupkey_t key, upb_value *v, uint32_t hash, eqlfunc_t *eql)
static uv_once_t uv__signal_global_init_guard
void uv__io_stop(uv_loop_t *loop, uv__io_t *w, unsigned int events)
static void uv__signal_block_and_lock(sigset_t *saved_sigmask)
#define uv__handle_start(h)
void uv__signal_close(uv_signal_t *handle)
static struct uv__signal_tree_s uv__signal_tree
#define uv__handle_stop(h)
#define RB_INITIALIZER(root)
RB_GENERATE_STATIC(uv__signal_tree_s, uv_signal_s, tree_entry, uv__signal_compare)
static int uv__signal_unlock(void)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:18