X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fio%2Fio.c;h=4c73b62455693f6ae5c633c910921583cd3a5089;hp=a1610a405230da40ec725dbc1163564b685986b6;hb=ab6e77749bfe678bde2cdf1442145bfbcaea253d;hpb=f7ab2c65d40839a327e50876dc2708ab7b11aa52 diff --git a/ccan/io/io.c b/ccan/io/io.c index a1610a40..4c73b624 100644 --- a/ccan/io/io.c +++ b/ccan/io/io.c @@ -490,8 +490,11 @@ struct io_plan io_close_cb(struct io_conn *conn, void *arg) void io_close_other(struct io_conn *conn) { - conn->plan = io_close_(); - backend_plan_changed(conn); + /* Don't close if already closing! */ + if (conn->plan.next) { + conn->plan = io_close_(); + backend_plan_changed(conn); + } } /* Exit the loop, returning this (non-NULL) arg. */