Ian Campbell
2012-Sep-06 12:02 UTC
[PATCH] xl: free libxl context, logger and lockfile using atexit handler
# HG changeset patch # User Ian Campbell <ian.campbell@citrix.com> # Date 1346932936 -3600 # Node ID 844e10487b91fb4dcb9c6f8be42a9940d95a7119 # Parent 1b6912dc15f39d1455929f605bbbda1a51c06fe5 xl: free libxl context, logger and lockfile using atexit handler xl frequently just calls exit(3), especially on error. Try to clean up some of our global state to make tools like valgrind more useful. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> --- For 4.3 only. diff -r 1b6912dc15f3 -r 844e10487b91 tools/libxl/xl.c --- a/tools/libxl/xl.c Thu Sep 06 10:44:40 2012 +0100 +++ b/tools/libxl/xl.c Thu Sep 06 13:02:16 2012 +0100 @@ -191,6 +191,22 @@ void xl_ctx_alloc(void) { libxl_childproc_setmode(ctx, &childproc_hooks, 0); } +static void xl_ctx_free(void) +{ + if (ctx) { + libxl_ctx_free(ctx); + ctx = NULL; + } + if (logger) { + xtl_logger_destroy((xentoollog_logger*)logger); + logger = NULL; + } + if (lockfile) { + free(lockfile); + lockfile = NULL; + } +} + int main(int argc, char **argv) { int opt = 0; @@ -229,6 +245,8 @@ int main(int argc, char **argv) logger = xtl_createlogger_stdiostream(stderr, minmsglevel, 0); if (!logger) exit(1); + atexit(xl_ctx_free); + xl_ctx_alloc(); ret = libxl_read_file_contents(ctx, XL_GLOBAL_CONFIG, @@ -274,8 +292,6 @@ int main(int argc, char **argv) } xit: - libxl_ctx_free(ctx); - xtl_logger_destroy((xentoollog_logger*)logger); return ret; }
Ian Jackson
2012-Sep-14 15:41 UTC
Re: [PATCH] xl: free libxl context, logger and lockfile using atexit handler
Ian Campbell writes ("[Xen-devel] [PATCH] xl: free libxl context, logger and lockfile using atexit handler"):> xl: free libxl context, logger and lockfile using atexit handlerAcked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell
2012-Sep-17 10:18 UTC
Re: [PATCH] xl: free libxl context, logger and lockfile using atexit handler
On Fri, 2012-09-14 at 16:41 +0100, Ian Jackson wrote:> Ian Campbell writes ("[Xen-devel] [PATCH] xl: free libxl context, logger and lockfile using atexit handler"): > > xl: free libxl context, logger and lockfile using atexit handler > > Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>Applied, thanks.