utils: add a global tmpctx.

I did a brief audit of tmpctx uses, and we do leak them in various
corner cases.  Fortunely, all our daemons are based on some kind of
I/O loop, so it's fairly easy to clean a global tmpctx at that point.

This makes things a bit neater, and slightly more efficient, but also
clearer: I avoided creating a tmpctx in a few places because I didn't
want to add another allocation.  With that penalty removed, I can use
it more freely and hopefully write clearer code.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2018-03-15 15:00:37 +10:30
parent 41ef42ee94
commit ef2a063169
10 changed files with 38 additions and 40 deletions

View File

@@ -11,9 +11,7 @@ int debug_poll(struct pollfd *fds, nfds_t nfds, int timeout)
if (t)
errx(1, "Outstanding taken pointers: %s", t);
t = tmpctx_any();
if (t)
errx(1, "Outstanding tmpctx: %s", t);
clean_tmpctx();
return poll(fds, nfds, timeout);
}