Tim reported in issue #1676 that just like startup_logs, trash buffers
are not released on deinit since they're thread-local, but valgrind
notices it when quitting before creating threads like "-c -f ...". Let's
just subscribe the function to deinit in addition to threads' end.
The two "free(x);x=NULL;" in free_trash_buffers_per_thread() were
also simplified using ha_free().
static void free_trash_buffers_per_thread()
{
chunk_destroy(&trash);
- free(trash_buf2);
- free(trash_buf1);
- trash_buf2 = NULL;
- trash_buf1 = NULL;
+ ha_free(&trash_buf2);
+ ha_free(&trash_buf1);
}
/* Initialize the trash buffers. It returns 0 if an error occurred. */
REGISTER_PER_THREAD_ALLOC(alloc_trash_buffers_per_thread);
REGISTER_PER_THREAD_FREE(free_trash_buffers_per_thread);
+REGISTER_POST_DEINIT(free_trash_buffers_per_thread);
/*
* Local variables: