mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-07 16:18:52 +00:00
Add a mutex to arena_free_all
This commit is contained in:
@@ -70,12 +70,18 @@ arena_alloc :: proc(arena: ^Arena, min_size: int, alignment: int) -> (data: []by
|
|||||||
}
|
}
|
||||||
|
|
||||||
arena_free_all :: proc(arena: ^Arena) {
|
arena_free_all :: proc(arena: ^Arena) {
|
||||||
|
if !arena.ignore_mutex {
|
||||||
|
sync.mutex_lock(mutex)
|
||||||
|
}
|
||||||
for arena.curr_block != nil {
|
for arena.curr_block != nil {
|
||||||
free_block := arena.curr_block
|
free_block := arena.curr_block
|
||||||
arena.curr_block = free_block.prev
|
arena.curr_block = free_block.prev
|
||||||
memory_dealloc(free_block)
|
memory_dealloc(free_block)
|
||||||
}
|
}
|
||||||
arena.total_used = 0
|
arena.total_used = 0
|
||||||
|
if !arena.ignore_mutex {
|
||||||
|
sync.mutex_unlock(mutex)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
arena_allocator :: proc(arena: ^Arena) -> mem.Allocator {
|
arena_allocator :: proc(arena: ^Arena) -> mem.Allocator {
|
||||||
|
|||||||
Reference in New Issue
Block a user