Selaa lähdekoodia

Add a mutex to `arena_free_all`

gingerBill 4 vuotta sitten
vanhempi
commit
b2a36f204e
1 muutettua tiedostoa jossa 6 lisäystä ja 0 poistoa
  1. 6 0
      core/mem/virtual/arena.odin

+ 6 - 0
core/mem/virtual/arena.odin

@@ -70,12 +70,18 @@ arena_alloc :: proc(arena: ^Arena, min_size: int, alignment: int) -> (data: []by
 }
 
 arena_free_all :: proc(arena: ^Arena) {
+	if !arena.ignore_mutex {
+		sync.mutex_lock(mutex)
+	}
 	for arena.curr_block != nil {
 		free_block := arena.curr_block
 		arena.curr_block = free_block.prev
 		memory_dealloc(free_block)
 	}
 	arena.total_used = 0
+	if !arena.ignore_mutex {
+		sync.mutex_unlock(mutex)
+	}
 }
 
 arena_allocator :: proc(arena: ^Arena) -> mem.Allocator {