]> git.meshlink.io Git - meshlink/blobdiff - src/event.c
Free the meshlink_handle_t in meshlink_close().
[meshlink] / src / event.c
index d23f43bb03c9df683a4ac9a967346f1b7d9aeee5..aa451801ea64742b5494785a1f378cee989a73e6 100644 (file)
@@ -136,6 +136,14 @@ static void pipe_init(event_loop_t *loop) {
                io_add(loop, &loop->signalio, signalio_handler, NULL, loop->pipefd[0], IO_READ);
 }
 
+void signal_trigger(event_loop_t *loop, signal_t *sig) {
+
+       uint8_t signum = sig->signum;
+       write(loop->pipefd[1], &signum, 1);
+       return;
+
+}
+
 void signal_add(event_loop_t *loop, signal_t *sig, signal_cb_t cb, void *data, uint8_t signum) {
        if(sig->cb)
                return;
@@ -238,9 +246,9 @@ void event_loop_init(event_loop_t *loop) {
 
 void event_loop_exit(event_loop_t *loop) {
        for splay_each(io_t, io, &loop->ios)
-               splay_free_node(&loop->ios, node);
+               splay_unlink_node(&loop->ios, node);
        for splay_each(timeout_t, timeout, &loop->timeouts)
-               splay_free_node(&loop->timeouts, node);
+               splay_unlink_node(&loop->timeouts, node);
        for splay_each(signal_t, signal, &loop->signals)
-               splay_free_node(&loop->signals, node);
+               splay_unlink_node(&loop->signals, node);
 }