diff options
author | Sam Gross <colesbury@gmail.com> | 2024-03-05 18:54:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-05 18:54:20 (GMT) |
commit | 72714c0266ce6d39c7c7fb63f617573b8f5a3cb2 (patch) | |
tree | 5542da152c1074e606ab1d058191c96b7217e594 /Objects/mimalloc | |
parent | dab85e01898ae737ba6197199090a51a6d4dd1fb (diff) | |
download | cpython-72714c0266ce6d39c7c7fb63f617573b8f5a3cb2.zip cpython-72714c0266ce6d39c7c7fb63f617573b8f5a3cb2.tar.gz cpython-72714c0266ce6d39c7c7fb63f617573b8f5a3cb2.tar.bz2 |
gh-115103: Enable internal mimalloc assertions in debug builds (#116343)
This sets `MI_DEBUG` to `2` in debug builds to enable `mi_assert_internal()`
calls. Expensive internal assertions are not enabled.
This also disables an assertion in free-threaded builds that would be
triggered by the free-threaded GC because we traverse heaps that are not
owned by the current thread.
Diffstat (limited to 'Objects/mimalloc')
-rw-r--r-- | Objects/mimalloc/alloc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Objects/mimalloc/alloc.c b/Objects/mimalloc/alloc.c index e6286b5..c133f23 100644 --- a/Objects/mimalloc/alloc.c +++ b/Objects/mimalloc/alloc.c @@ -609,7 +609,10 @@ bool _mi_free_delayed_block(mi_block_t* block) { // get segment and page const mi_segment_t* const segment = _mi_ptr_segment(block); mi_assert_internal(_mi_ptr_cookie(segment) == segment->cookie); +#ifndef Py_GIL_DISABLED + // The GC traverses heaps of other threads, which can trigger this assert. mi_assert_internal(_mi_thread_id() == segment->thread_id); +#endif mi_page_t* const page = _mi_segment_page_of(segment, block); // Clear the no-delayed flag so delayed freeing is used again for this page. |