#include "signal.h" static void signal_callback(struct ev_loop *loop, ev_async *w, s32 revents) { (void)loop; struct nn_signal *signal = (struct nn_signal *)w->data; (void)revents; signal->callback(signal->userdata); } void nn_signal_init(struct nn_signal *signal, struct nn_event_loop *loop, void (*callback)(void *), void *userdata) { signal->loop = loop; signal->callback = callback; signal->userdata = userdata; signal->signal.data = signal; ev_async_init_n(&signal->signal, signal_callback); } void nn_signal_start(struct nn_signal *signal) { ev_async_start(signal->loop->ev, &signal->signal); } void nn_signal_send(struct nn_signal *signal) { ev_async_send(signal->loop->ev, &signal->signal); } void nn_signal_stop(struct nn_signal *signal) { ev_async_stop(signal->loop->ev, &signal->signal); }