diff --git a/src/segment.c b/src/segment.c index 1ab7328e..048fe846 100644 --- a/src/segment.c +++ b/src/segment.c @@ -656,7 +656,7 @@ static mi_segment_t* mi_segment_init(mi_segment_t* segment, size_t required, mi_ const size_t segment_size = segment_slices * MI_SEGMENT_SLICE_SIZE; // Commit eagerly only if not the first N lazy segments (to reduce impact of many threads that allocate just a little) - const bool eager_delay = (tld->count < (size_t)mi_option_get(mi_option_eager_commit_delay)); + const bool eager_delay = (!_mi_is_main_thread() && tld->count < (size_t)mi_option_get(mi_option_eager_commit_delay)); const bool eager = !eager_delay && mi_option_is_enabled(mi_option_eager_commit); bool commit = eager || (required > 0);