]> git.ozlabs.org Git - ccan/blobdiff - ccan/io/io.h
ccan/io: implement timeouts.
[ccan] / ccan / io / io.h
index d4ba2d87688e81143863e232d4c1eb34283ab602..165ff6f63361d395db25a4706d21eec51b5bbb1b 100644 (file)
@@ -6,6 +6,9 @@
 #include <stdbool.h>
 #include <unistd.h>
 
+struct timers;
+struct list_head;
+
 /**
  * struct io_plan - a plan for input or output.
  *
@@ -169,7 +172,7 @@ struct io_listener *io_new_listener_(const tal_t *ctx, int fd,
  * ...
  *     struct io_listener *l = do_listen("8111");
  *     if (l) {
- *             io_loop();
+ *             io_loop(NULL, NULL);
  *             io_close_listener(l);
  *     }
  */
@@ -553,14 +556,17 @@ struct io_plan *io_close_cb(struct io_conn *, void *unused);
 
 /**
  * io_loop - process fds until all closed on io_break.
+ * @timers - timers which are waiting to go off (or NULL for none)
+ * @expired - a list filled with expired timers (can be NULL if @timers is)
  *
  * This is the core loop; it exits with the io_break() arg, or NULL if
- * all connections and listeners are closed.
+ * all connections and listeners are closed, or with @expired set to a
+ * list of expired timers (if @timers isn't NULL).
  *
  * Example:
- *     io_loop();
+ *     io_loop(NULL, NULL);
  */
-void *io_loop(void);
+void *io_loop(struct timers *timers, struct list_head *expired);
 
 /**
  * io_conn_fd - get the fd from a connection.