From 582559f7ac54b62cbdccf6f396f072b15a950664 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Fri, 27 Aug 2021 11:18:38 +0100 Subject: Correct did you mean logic and make thread-safe-er --- src/common_memory.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/common_memory.cpp') diff --git a/src/common_memory.cpp b/src/common_memory.cpp index dfc86b5f3..8d1161f25 100644 --- a/src/common_memory.cpp +++ b/src/common_memory.cpp @@ -57,8 +57,8 @@ struct MemoryBlock { }; struct Arena { - MemoryBlock * curr_block; - isize minimum_block_size; + MemoryBlock *curr_block; + isize minimum_block_size; bool use_local_mutex; BlockingMutex local_mutex; }; @@ -69,8 +69,14 @@ gb_global isize DEFAULT_PAGE_SIZE = 4096; MemoryBlock *virtual_memory_alloc(isize size); void virtual_memory_dealloc(MemoryBlock *block); +void *arena_alloc(Arena *arena, isize min_size, isize alignment); void arena_free_all(Arena *arena); +void arena_init_local_mutex(Arena *arena) { + mutex_init(&arena->local_mutex); + arena->use_local_mutex = true; +} + isize arena_align_forward_offset(Arena *arena, isize alignment) { isize alignment_offset = 0; isize ptr = cast(isize)(arena->curr_block->base + arena->curr_block->used); @@ -81,17 +87,9 @@ isize arena_align_forward_offset(Arena *arena, isize alignment) { return alignment_offset; } -void arena_init_local_mutex(Arena *arena) { - mutex_init(&arena->local_mutex); - arena->use_local_mutex = true; -} - - - void *arena_alloc(Arena *arena, isize min_size, isize alignment) { GB_ASSERT(gb_is_power_of_two(alignment)); - BlockingMutex *mutex = &global_memory_allocator_mutex; if (arena->use_local_mutex) { mutex = &arena->local_mutex; @@ -289,6 +287,7 @@ GB_ALLOCATOR_PROC(arena_allocator_proc) { } break; case gbAllocation_FreeAll: + GB_PANIC("use arena_free_all directly"); arena_free_all(arena); break; } -- cgit v1.2.3