diff options
author | Himbeer <himbeer@disroot.org> | 2024-07-20 18:41:16 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-07-20 18:41:16 +0200 |
commit | 7b47e7c94a947b59074e31038729f188f6561070 (patch) | |
tree | 821d46a666da6d9f18bdc5f423a4dcfffbdcc1a2 | |
parent | 30c19986a7ecfe704acf6f7b46ad6de3154b2920 (diff) |
process: Add allowResume convenience function to increment the program counter and restore the process to the 'waiting' state
-rw-r--r-- | src/lib/process.zig | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/process.zig b/src/lib/process.zig index 6dec114..83839b9 100644 --- a/src/lib/process.zig +++ b/src/lib/process.zig @@ -199,6 +199,11 @@ pub const Info = struct { } } + pub fn allowResume(self: *Info) void { + self.pc += 4; // Skip ecall instruction + self.state = .waiting; + } + fn shouldRemove(self: *const Info, candidate: *const Info) bool { return candidate.id == self.id and self.shouldRemoveThread(candidate); } |