summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/signal.c7
-rw-r--r--src/signal.h5
2 files changed, 7 insertions, 5 deletions
diff --git a/src/signal.c b/src/signal.c
index ad9c59d..f7ebd6d 100644
--- a/src/signal.c
+++ b/src/signal.c
@@ -8,17 +8,18 @@ static void signal_callback(struct ev_loop *loop, ev_async *w, s32 revents)
signal->callback(signal->userdata);
}
-void aki_signal_init(struct aki_signal *signal, void (*callback)(void *), void *userdata)
+void aki_signal_init(struct aki_signal *signal, struct aki_event_loop *loop,
+ void (*callback)(void *), void *userdata)
{
+ signal->loop = loop;
signal->callback = callback;
signal->userdata = userdata;
signal->signal.data = signal;
ev_async_init(&signal->signal, signal_callback);
}
-void aki_signal_start(struct aki_signal *signal, struct aki_event_loop *loop)
+void aki_signal_start(struct aki_signal *signal)
{
- signal->loop = loop;
ev_async_start(signal->loop->ev, &signal->signal);
}
diff --git a/src/signal.h b/src/signal.h
index 46bbbdb..9423432 100644
--- a/src/signal.h
+++ b/src/signal.h
@@ -9,7 +9,8 @@ struct aki_signal {
void *userdata;
};
-void aki_signal_init(struct aki_signal *signal, void (*callback)(void *), void *userdata);
-void aki_signal_start(struct aki_signal *signal, struct aki_event_loop *loop);
+void aki_signal_init(struct aki_signal *signal, struct aki_event_loop *loop,
+ void (*callback)(void *), void *userdata);
+void aki_signal_start(struct aki_signal *signal);
void aki_signal_send(struct aki_signal *signal);
void aki_signal_stop(struct aki_signal *signal);