summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-10-23 09:40:53 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-10-23 09:40:53 +0200
commite1b8ba28465ac52638d849fb4179eceb55e257ab (patch)
treef2cc787be233f4311be47d37c6ef2bc9c4ccebd5 /dev
parent64492ed9c42659d0c5f7eb2143a673dd0b5f9dc3 (diff)
fix: kernel: HTS is now indexing hwthread correctly.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev')
-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];
}