summaryrefslogtreecommitdiff
path: root/include/jemalloc/internal/prof_inlines.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/jemalloc/internal/prof_inlines.h')
-rw-r--r--include/jemalloc/internal/prof_inlines.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/jemalloc/internal/prof_inlines.h b/include/jemalloc/internal/prof_inlines.h
index ab3e01f6..b74b115c 100644
--- a/include/jemalloc/internal/prof_inlines.h
+++ b/include/jemalloc/internal/prof_inlines.h
@@ -38,6 +38,22 @@ prof_gdump_get_unlocked(void) {
return prof_gdump_val;
}
+JEMALLOC_ALWAYS_INLINE void
+prof_thread_name_assert(prof_tdata_t *tdata) {
+ if (!config_debug) {
+ return;
+ }
+ prof_active_assert();
+
+ bool terminated = false;
+ for (unsigned i = 0; i < PROF_THREAD_NAME_MAX_LEN; i++) {
+ if (tdata->thread_name[i] == '\0') {
+ terminated = true;
+ }
+ }
+ assert(terminated);
+}
+
JEMALLOC_ALWAYS_INLINE prof_tdata_t *
prof_tdata_get(tsd_t *tsd, bool create) {
prof_tdata_t *tdata;
@@ -59,6 +75,10 @@ prof_tdata_get(tsd_t *tsd, bool create) {
assert(tdata == NULL || tdata->attached);
}
+ if (tdata != NULL) {
+ prof_thread_name_assert(tdata);
+ }
+
return tdata;
}
@@ -255,4 +275,18 @@ prof_free(tsd_t *tsd, const void *ptr, size_t usize,
}
}
+JEMALLOC_ALWAYS_INLINE bool
+prof_thread_name_empty(prof_tdata_t *tdata) {
+ prof_active_assert();
+
+ return (tdata->thread_name[0] == '\0');
+}
+
+JEMALLOC_ALWAYS_INLINE void
+prof_thread_name_clear(prof_tdata_t *tdata) {
+ prof_active_assert();
+
+ tdata->thread_name[0] = '\0';
+}
+
#endif /* JEMALLOC_INTERNAL_PROF_INLINES_H */