aboutsummaryrefslogtreecommitdiff
path: root/mirai/kata
diff options
context:
space:
mode:
Diffstat (limited to 'mirai/kata')
-rw-r--r--mirai/kata/memory.zig6
-rw-r--r--mirai/kata/pool.zig2
2 files changed, 0 insertions, 8 deletions
diff --git a/mirai/kata/memory.zig b/mirai/kata/memory.zig
index 6e835af..a479c25 100644
--- a/mirai/kata/memory.zig
+++ b/mirai/kata/memory.zig
@@ -218,17 +218,11 @@ pub fn load_segment(
}
}
-/// Clean up all memory associated with a Kata
-/// Called when a Kata is dissolved/exits
pub fn cleanup(kata: *types.Kata) void {
if (kata.page_table != 0) {
- // Destroy the page table and free all associated pages
- // This frees: user stack, program pages, page table structures
- // Does NOT free: shared kernel pages, framebuffer
paging.destroy_page_table(kata.page_table);
kata.page_table = 0;
}
-
kata.stack_top = 0;
kata.user_stack_top = 0;
}
diff --git a/mirai/kata/pool.zig b/mirai/kata/pool.zig
index b4b90cd..8c057f9 100644
--- a/mirai/kata/pool.zig
+++ b/mirai/kata/pool.zig
@@ -71,9 +71,7 @@ pub fn dissolve(kata_id: u32) void {
for (&pool, 0..) |*kata, i| {
if (used[i] and kata.id == kata_id) {
- // Clean up all memory associated with this Kata
memory.cleanup(kata);
-
kata.state = .Dissolved;
used[i] = false;
waker.wake_waiting(kata_id);