static void finish_waker(struct io_conn *conn, struct data *d)
{
- io_wake(idler, io_read(d->buf, sizeof(d->buf), read_done, d));
+ io_wake(d);
ok1(d->state == 1);
d->state++;
}
{
ok1(d->state == 3);
d->state++;
- io_break(d, io_idle());
+ io_break(d, io_never());
}
static struct io_plan never(struct io_conn *conn, void *arg)
abort();
}
+static struct io_plan read_buf(struct io_conn *conn, struct data *d)
+{
+ return io_read(d->buf, sizeof(d->buf), read_done, d);
+}
+
static void init_conn(int fd, struct data *d)
{
int fd2;
ok1(d->state == 0);
d->state++;
- idler = io_new_conn(fd, io_idle());
+ idler = io_new_conn(fd, io_wait(d, read_buf, d));
io_set_finish(idler, finish_idle, d);
/* This will wake us up, as read will fail. */