X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fio%2Fio.c;h=7dbb9c5a3962d3a802bf1aae502ceeda4bb1b685;hp=c0af6bf7e4d66ec761307b49931dcca85f64e3a8;hb=8d94c52a7d6a51fd3a95734b2b4c7daa8c687d91;hpb=31df8231a077488a9f4010a8863ca38993aa69c8 diff --git a/ccan/io/io.c b/ccan/io/io.c index c0af6bf7..7dbb9c5a 100644 --- a/ccan/io/io.c +++ b/ccan/io/io.c @@ -384,10 +384,13 @@ void io_do_always(struct io_conn *conn) next_plan(conn, &conn->plan[IO_OUT]); } -void io_do_wakeup(struct io_conn *conn, struct io_plan *plan) +void io_do_wakeup(struct io_conn *conn, enum io_direction dir) { + struct io_plan *plan = &conn->plan[dir]; + assert(plan->status == IO_WAITING); - next_plan(conn, plan); + + set_always(conn, dir, plan->next, plan->next_arg); } /* Close the connection, we're done. */