Message ID | pull.1801.v2.git.1727804265033.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 5e6f359f6b7829e3baea888f5489f04eebf745af |
Headers | show |
Series | [v2] read-cache: free threaded memory pool | expand |
On Tue, Oct 01, 2024 at 05:37:44PM +0000, Derrick Stolee via GitGitGadget wrote: > From: Derrick Stolee <stolee@gmail.com> > > In load_cache_entries_threaded(), each thread allocates its own memory > pool. This pool needs to be cleaned up while closing the threads down, > or it will be leaked. > > This ce_mem_pool pointer could theoretically be converted to an inline > copy of the struct, but the use of a pointer helps with existing lazy- > initialization logic. Adjusting that behavior only to avoid this pointer > would be a much bigger change. Thanks, this looks good to me. Patrick
diff --git a/read-cache.c b/read-cache.c index 764fdfec465..3c078afadbc 100644 --- a/read-cache.c +++ b/read-cache.c @@ -2188,6 +2188,7 @@ static unsigned long load_cache_entries_threaded(struct index_state *istate, con if (err) die(_("unable to join load_cache_entries thread: %s"), strerror(err)); mem_pool_combine(istate->ce_mem_pool, p->ce_mem_pool); + free(p->ce_mem_pool); consumed += p->consumed; }