aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/memory
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/memory')
-rw-r--r--arch/x86_64/src/memory/heap/linked_list_allocator.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86_64/src/memory/heap/linked_list_allocator.cpp b/arch/x86_64/src/memory/heap/linked_list_allocator.cpp
index 01838f9..1c5c443 100644
--- a/arch/x86_64/src/memory/heap/linked_list_allocator.cpp
+++ b/arch/x86_64/src/memory/heap/linked_list_allocator.cpp
@@ -36,14 +36,15 @@ namespace teachos::arch::memory::heap
{
if (current->size >= size + min_allocatable_size())
{
- return split_free_memory_block(previous, current, size);
+ auto memory_address = split_free_memory_block(previous, current, size);
+ mutex.unlock();
+ return memory_address;
}
previous = current;
current = current->next;
}
- mutex.unlock();
exception_handling::panic("[Linked List Allocator] Out of memory");
}