summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Hommey <mh@glandium.org>2012-04-18 16:29:47 (GMT)
committerJason Evans <jasone@canonware.com>2012-04-19 02:23:32 (GMT)
commit7ff1ce4131651fea1df7b1c010d71667bc574816 (patch)
tree4abfcada7043b8e7221489c464d4b5689a269735
parent86e58583bb443fcfe885a1a96b466ab5933cb443 (diff)
downloadjemalloc-7ff1ce4131651fea1df7b1c010d71667bc574816.zip
jemalloc-7ff1ce4131651fea1df7b1c010d71667bc574816.tar.gz
jemalloc-7ff1ce4131651fea1df7b1c010d71667bc574816.tar.bz2
Initialize all members of non-TLS tsd wrapper when creating it
Not setting the initialized member leads to randomly calling the cleanup function in cases it shouldn't be called (and isn't called in other implementations).
-rw-r--r--include/jemalloc/internal/tsd.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/jemalloc/internal/tsd.h b/include/jemalloc/internal/tsd.h
index 35ae5e3..3f953f9 100644
--- a/include/jemalloc/internal/tsd.h
+++ b/include/jemalloc/internal/tsd.h
@@ -253,6 +253,7 @@ a_name##_tsd_get_wrapper(void) \
} else { \
static a_type tsd_static_data = a_initializer; \
wrapper->isstatic = false; \
+ wrapper->initialized = false; \
wrapper->val = tsd_static_data; \
} \
if (pthread_setspecific(a_name##_tsd, \