Lines Matching full:base

72   to set a signal handler, and a socket pair to tell the event base when
74 Note that I said "the event base" : only one event base can be set up to use
110 /* The event base that's currently getting informed about signals. */
122 evsig_set_base_(struct event_base *base) in evsig_set_base_() argument
125 evsig_base = base; in evsig_set_base_()
126 evsig_base_n_signals_added = base->sig.ev_n_signals_added; in evsig_set_base_()
127 evsig_base_fd = base->sig.ev_signal_pair[1]; in evsig_set_base_()
139 struct event_base *base; in evsig_cb() local
141 base = arg; in evsig_cb()
167 EVBASE_ACQUIRE_LOCK(base, th_base_lock); in evsig_cb()
170 evmap_signal_active_(base, i, ncaught[i]); in evsig_cb()
172 EVBASE_RELEASE_LOCK(base, th_base_lock); in evsig_cb()
176 evsig_init_(struct event_base *base) in evsig_init_() argument
183 if (evutil_make_internal_pipe_(base->sig.ev_signal_pair) == -1) { in evsig_init_()
194 if (base->sig.sh_old) { in evsig_init_()
195 mm_free(base->sig.sh_old); in evsig_init_()
197 base->sig.sh_old = NULL; in evsig_init_()
198 base->sig.sh_old_max = 0; in evsig_init_()
200 event_assign(&base->sig.ev_signal, base, base->sig.ev_signal_pair[0], in evsig_init_()
201 EV_READ | EV_PERSIST, evsig_cb, base); in evsig_init_()
203 base->sig.ev_signal.ev_flags |= EVLIST_INTERNAL; in evsig_init_()
204 event_priority_set(&base->sig.ev_signal, 0); in evsig_init_()
206 base->evsigsel = &evsigops; in evsig_init_()
211 /* Helper: set the signal handler for evsignal to handler in base, so that
214 evsig_set_handler_(struct event_base *base, in evsig_set_handler_() argument
222 struct evsig_info *sig = &base->sig; in evsig_set_handler_()
280 evsig_add(struct event_base *base, evutil_socket_t evsignal, short old, short events, void *p) in evsig_add() argument
282 struct evsig_info *sig = &base->sig; in evsig_add()
289 if (evsig_base != base && evsig_base_n_signals_added) { in evsig_add()
290 event_warnx("Added a signal to event base %p with signals " in evsig_add()
292 "signals at a time with the %s backend. The base with " in evsig_add()
296 base, evsig_base, base->evsel->name); in evsig_add()
298 evsig_base = base; in evsig_add()
300 evsig_base_fd = base->sig.ev_signal_pair[1]; in evsig_add()
304 if (evsig_set_handler_(base, (int)evsignal, evsig_handler) == -1) { in evsig_add()
326 evsig_restore_handler_(struct event_base *base, int evsignal) in evsig_restore_handler_() argument
329 struct evsig_info *sig = &base->sig; in evsig_restore_handler_()
363 evsig_del(struct event_base *base, evutil_socket_t evsignal, short old, short events, void *p) in evsig_del() argument
372 --base->sig.ev_n_signals_added; in evsig_del()
375 return (evsig_restore_handler_(base, (int)evsignal)); in evsig_del()
389 "%s: received signal %d, but have no base configured", in evsig_handler()
415 evsig_dealloc_(struct event_base *base) in evsig_dealloc_() argument
418 if (base->sig.ev_signal_added) { in evsig_dealloc_()
419 event_del(&base->sig.ev_signal); in evsig_dealloc_()
420 base->sig.ev_signal_added = 0; in evsig_dealloc_()
424 event_debug_unassign(&base->sig.ev_signal); in evsig_dealloc_()
427 if (i < base->sig.sh_old_max && base->sig.sh_old[i] != NULL) in evsig_dealloc_()
428 evsig_restore_handler_(base, i); in evsig_dealloc_()
431 if (base == evsig_base) { in evsig_dealloc_()
438 if (base->sig.ev_signal_pair[0] != -1) { in evsig_dealloc_()
439 evutil_closesocket(base->sig.ev_signal_pair[0]); in evsig_dealloc_()
440 base->sig.ev_signal_pair[0] = -1; in evsig_dealloc_()
442 if (base->sig.ev_signal_pair[1] != -1) { in evsig_dealloc_()
443 evutil_closesocket(base->sig.ev_signal_pair[1]); in evsig_dealloc_()
444 base->sig.ev_signal_pair[1] = -1; in evsig_dealloc_()
446 base->sig.sh_old_max = 0; in evsig_dealloc_()
449 if (base->sig.sh_old) { in evsig_dealloc_()
450 mm_free(base->sig.sh_old); in evsig_dealloc_()
451 base->sig.sh_old = NULL; in evsig_dealloc_()