X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fio%2Fpoll.c;h=a02152e3792ae07569d4a75b1ca423ecce5fb626;hp=95b6103287d6335b0b84e4475a7b8469a2d33b54;hb=b089d462e533d2b304cc28b9ad277cbfa53f12ce;hpb=bc6d22ecf820d0b4547ace17ff7e7ecebf0e415b;ds=sidebyside diff --git a/ccan/io/poll.c b/ccan/io/poll.c index 95b61032..a02152e3 100644 --- a/ccan/io/poll.c +++ b/ccan/io/poll.c @@ -137,6 +137,12 @@ static void remove_from_always(const struct io_plan *plan) if (pos != num_always-1) always[pos] = always[num_always-1]; num_always--; + + /* Only free if no fds left either. */ + if (num_always == 0 && max_fds == 0) { + tal_free(always); + max_always = 0; + } } bool backend_new_always(struct io_plan *plan)