#include <stdbool.h>
#include <poll.h>
#include "io_plan.h"
+#include <ccan/list/list.h>
struct fd {
int fd;
/* Waiting for io_wake */
IO_WAITING,
/* Always do this. */
- IO_ALWAYS,
- /* Closing (both plans will be the same). */
- IO_CLOSING
+ IO_ALWAYS
};
/**
/* One connection per client. */
struct io_conn {
struct fd fd;
- bool debug;
- /* For duplex to save. */
- bool debug_saved;
- /* always or closing list. */
- struct io_conn *list;
+ /* always list. */
+ struct list_node always;
void (*finish)(struct io_conn *, void *arg);
void *finish_arg;
bool add_conn(struct io_conn *c);
bool add_duplex(struct io_conn *c);
void del_listener(struct io_listener *l);
-void backend_new_closing(struct io_conn *conn);
void backend_new_always(struct io_conn *conn);
void backend_new_plan(struct io_conn *conn);
void remove_from_always(struct io_conn *conn);
void backend_plan_done(struct io_conn *conn);
void backend_wake(const void *wait);
-void backend_del_conn(struct io_conn *conn);
void io_ready(struct io_conn *conn, int pollflags);
void io_do_always(struct io_conn *conn);