1*4882a593SmuzhiyunFrom 252e1127421c3c50c56d5c34a1a1b9251592b87c Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: JeffyChen <jeffy.chen@rock-chips.com>
3*4882a593SmuzhiyunDate: Fri, 2 Jul 2021 17:39:24 +0200
4*4882a593SmuzhiyunSubject: [PATCH 02/20] malloc: Initiate tcache shutdown even without
5*4882a593Smuzhiyun allocations [BZ #28028]
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunAfter commit 1e26d35193efbb29239c710a4c46a64708643320 ("malloc: Fix
8*4882a593Smuzhiyuntcache leak after thread destruction [BZ #22111]"),
9*4882a593Smuzhiyuntcache_shutting_down is still not early enough.  When we detach a
10*4882a593Smuzhiyunthread with no tcache allocated, tcache_shutting_down would still be
11*4882a593Smuzhiyunfalse.
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunReviewed-by: DJ Delorie <dj@redhat.com>
14*4882a593Smuzhiyun(cherry picked from commit dfec225ee1972488bb48a8b67a2c4a13010c334a)
15*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
16*4882a593Smuzhiyun---
17*4882a593Smuzhiyun malloc/malloc.c | 3 ++-
18*4882a593Smuzhiyun 1 file changed, 2 insertions(+), 1 deletion(-)
19*4882a593Smuzhiyun
20*4882a593Smuzhiyundiff --git a/malloc/malloc.c b/malloc/malloc.c
21*4882a593Smuzhiyunindex 27cf6137..c2ed8b6b 100644
22*4882a593Smuzhiyun--- a/malloc/malloc.c
23*4882a593Smuzhiyun+++ b/malloc/malloc.c
24*4882a593Smuzhiyun@@ -2943,12 +2943,13 @@ tcache_thread_shutdown (void)
25*4882a593Smuzhiyun   int i;
26*4882a593Smuzhiyun   tcache_perthread_struct *tcache_tmp = tcache;
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun+  tcache_shutting_down = true;
29*4882a593Smuzhiyun+
30*4882a593Smuzhiyun   if (!tcache)
31*4882a593Smuzhiyun     return;
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun   /* Disable the tcache and prevent it from being reinitialized.  */
34*4882a593Smuzhiyun   tcache = NULL;
35*4882a593Smuzhiyun-  tcache_shutting_down = true;
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun   /* Free all of the entries and the tcache itself back to the arena
38*4882a593Smuzhiyun      heap for coalescing.  */
39*4882a593Smuzhiyun--
40*4882a593Smuzhiyun2.20.1
41*4882a593Smuzhiyun
42