summaryrefslogtreecommitdiff
path: root/Source/Kernel/SyscallManager
diff options
context:
space:
mode:
authorAlexis211 <alexis211@gmail.com>2009-10-09 16:29:05 +0200
committerAlexis211 <alexis211@gmail.com>2009-10-09 16:29:05 +0200
commitb9a988061e8220c5ef2406f5cd2221bf3f1b435d (patch)
tree7d523347e555a7555740d7b0ceffbeb35c32d1e6 /Source/Kernel/SyscallManager
parent92abedffec913fe7337117403c5e07185356c81b (diff)
downloadMelon-b9a988061e8220c5ef2406f5cd2221bf3f1b435d.tar.gz
Melon-b9a988061e8220c5ef2406f5cd2221bf3f1b435d.zip
Exiting from a thread now works without hanging everything.
Diffstat (limited to 'Source/Kernel/SyscallManager')
-rw-r--r--Source/Kernel/SyscallManager/IDT.ns.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Kernel/SyscallManager/IDT.ns.cpp b/Source/Kernel/SyscallManager/IDT.ns.cpp
index dc40747..36c584d 100644
--- a/Source/Kernel/SyscallManager/IDT.ns.cpp
+++ b/Source/Kernel/SyscallManager/IDT.ns.cpp
@@ -74,7 +74,7 @@ extern "C" void interrupt_handler(registers_t regs) {
doSwitch = doSwitch or Task::IRQwakeup(regs.int_no - 32);
}
if (regs.int_no == 66) { //This syscall signals to kernel that thread ended.
- Task::currentThread->finish(regs.eax);
+ Task::currentThreadExits(regs.eax);
}
if (doSwitch) Task::doSwitch(); //DO NEVER COUNT ON COMMING BACK FROM HERE
}