diff options
author | Daan Leijen <daan@microsoft.com> | 2021-02-02 10:46:30 -0800 |
---|---|---|
committer | Daan Leijen <daan@microsoft.com> | 2021-02-02 10:46:30 -0800 |
commit | 331491e1e80da8f99321c9261b17463f3b32ade5 (patch) | |
tree | 377ded3746fed12ef8a5735858c08ebee7be8ea7 /include/mimalloc-internal.h | |
parent | a7c33a3b0eae509463bde8a492470472fad1ca39 (diff) |
build fix for Apple M1 (issue #354 and pr #356)
Diffstat (limited to 'include/mimalloc-internal.h')
-rw-r--r-- | include/mimalloc-internal.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/mimalloc-internal.h b/include/mimalloc-internal.h index cf4d80e..7160bc4 100644 --- a/include/mimalloc-internal.h +++ b/include/mimalloc-internal.h @@ -324,10 +324,14 @@ static inline mi_heap_t** mi_tls_pthread_heap_slot(void) { #elif defined(MI_TLS_PTHREAD) #include <pthread.h> extern pthread_key_t _mi_heap_default_key; -#else -extern mi_decl_thread mi_heap_t* _mi_heap_default; // default heap to allocate from #endif +// Default heap to allocate from (if not using TLS- or pthread slots). +// Do not use this directly but use through `mi_heap_get_default()` (or the unchecked `mi_get_default_heap`). +// This thread local variable is only used when neither MI_TLS_SLOT, MI_TLS_PTHREAD, or MI_TLS_PTHREAD_SLOT_OFS are defined. +// However, on the Apple M1 we do use the address of this variable as the unique thread-id (issue #356). +extern mi_decl_thread mi_heap_t* _mi_heap_default; // default heap to allocate from + static inline mi_heap_t* mi_get_default_heap(void) { #if defined(MI_TLS_SLOT) mi_heap_t* heap = (mi_heap_t*)mi_tls_slot(MI_TLS_SLOT); |