void event_fire(const event_t *event) { if (event && event->type == EVENT_SIGNAL) { event_fire_signal(event->param1.signal); } else { is_event++; /* Fire events triggered by signals */ event_fire_delayed(); if (event) { if (event_is_blocked(*event)) { blocked.push_back(new event_t(*event)); } else { event_fire_internal(*event); } } is_event--; } }
/// Standard signal handler. static void default_handler(int signal, siginfo_t *info, void *context) { UNUSED(info); UNUSED(context); if (event_is_signal_observed(signal)) { event_fire_signal(signal); } }