]> git.meshlink.io Git - meshlink/blobdiff - src/event.h
Call utcp_timeout() once every iteration of the event loop.
[meshlink] / src / event.h
index 4eb182518b350ba57cb7c036e0340f7c70e4ba6b..53559f80368bcf6606c3e440a917399e57fbf40e 100644 (file)
@@ -31,6 +31,7 @@ typedef struct event_loop_t event_loop_t;
 typedef void (*io_cb_t)(event_loop_t *loop, void *data, int flags);
 typedef void (*timeout_cb_t)(event_loop_t *loop, void *data);
 typedef void (*signal_cb_t)(event_loop_t *loop, void *data);
+typedef struct timeval (*idle_cb_t)(event_loop_t *loop, void *data);
 
 typedef struct io_t {
        int fd;
@@ -66,6 +67,9 @@ struct event_loop_t {
        splay_tree_t timeouts;
        splay_tree_t signals;
 
+       idle_cb_t idle_cb;
+       void *idle_data;
+
        io_t signalio;
        int pipefd[2];
 
@@ -84,6 +88,8 @@ extern void signal_add(event_loop_t *loop, signal_t *sig, signal_cb_t cb, void *
 extern void signal_trigger(event_loop_t *loop, signal_t *sig);
 extern void signal_del(event_loop_t *loop, signal_t *sig);
 
+extern void idle_set(event_loop_t *loop, idle_cb_t cb, void *data);
+
 extern void event_loop_init(event_loop_t *loop);
 extern void event_loop_exit(event_loop_t *loop);
 extern bool event_loop_run(event_loop_t *loop, pthread_mutex_t *mutex);