diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/syscall.zig | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/syscall.zig b/src/lib/syscall.zig index c800ef0..419938f 100644 --- a/src/lib/syscall.zig +++ b/src/lib/syscall.zig @@ -2,6 +2,8 @@ // // SPDX-License-Identifier: AGPL-3.0-or-later +const std = @import("std"); + const instructions = @import("instructions.zig"); const paging = @import("paging.zig"); const process = @import("process.zig"); @@ -221,6 +223,9 @@ fn write(proc: *const process.Info, trap_frame: *trap.Frame) void { } // terminate() noreturn -fn terminate(proc: *process.Info) void { +fn terminate(proc: *process.Info) noreturn { proc.terminate(); + process.schedule() catch |err| { + std.debug.panic("Unable to schedule because all processes are terminated: {any}", .{err}); + }; } |