summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel')
-rw-r--r--dev/kernel/KernelKit/HardwareThreadScheduler.h2
-rw-r--r--dev/kernel/src/HardwareThreadScheduler.cc3
2 files changed, 3 insertions, 2 deletions
diff --git a/dev/kernel/KernelKit/HardwareThreadScheduler.h b/dev/kernel/KernelKit/HardwareThreadScheduler.h
index 76327a93..e26a353a 100644
--- a/dev/kernel/KernelKit/HardwareThreadScheduler.h
+++ b/dev/kernel/KernelKit/HardwareThreadScheduler.h
@@ -120,7 +120,7 @@ class HardwareThreadScheduler final : public ISchedulable {
private:
Array<HardwareThread, kMaxAPInsideSched> fThreadList;
- ThreadID fCurrentThread{0};
+ ThreadID fCurrentThreadIdx{0};
};
/// @brief wakes up thread.
diff --git a/dev/kernel/src/HardwareThreadScheduler.cc b/dev/kernel/src/HardwareThreadScheduler.cc
index 86f46718..a4b6b4b8 100644
--- a/dev/kernel/src/HardwareThreadScheduler.cc
+++ b/dev/kernel/src/HardwareThreadScheduler.cc
@@ -134,7 +134,7 @@ HardwareThreadScheduler& HardwareThreadScheduler::The() {
/// @brief Get Stack Frame of AP.
/***********************************************************************************/
HAL::StackFramePtr HardwareThreadScheduler::Leak() noexcept {
- return fThreadList[fCurrentThread].fStack;
+ return fThreadList[fCurrentThreadIdx].fStack;
}
/***********************************************************************************/
@@ -150,6 +150,7 @@ Ref<HardwareThread*> HardwareThreadScheduler::operator[](SizeT idx) {
return {kFakeThread};
}
+ fCurrentThreadIdx = idx;
return &fThreadList[idx];
}