#include <stdbool.h>
#include <unistd.h>
+struct timers;
+struct list_head;
+
/**
* struct io_plan - a plan for input or output.
*
* ...
* struct io_listener *l = do_listen("8111");
* if (l) {
- * io_loop();
+ * io_loop(NULL, NULL);
* io_close_listener(l);
* }
*/
/**
* 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.