blob: f223428933be9e7b47ff1a4e4144f7936a0d5aa2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#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);
}
|