diff options
Diffstat (limited to 'dev/kernel')
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc index fe3ee89b..1fbf9fea 100644 --- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc +++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc @@ -114,12 +114,15 @@ EXTERN_C HAL::StackFramePtr mp_get_current_task(Int64 thrdid) { EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ProcessID thrdid) { if (thrdid > kSMPCount) return NO; + if (!stack_frame) return NO; kHWThread[thrdid].mFramePtr = stack_frame; kHWThread[thrdid].mThreadID = thrdid; HardwareThreadScheduler::The()[thrdid].Leak()->Busy(NO); + sched_jump_to_task(kHWThread[thrdid].mFramePtr); + return YES; } |
