summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/HardwareThreadScheduler.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-05-18 20:00:25 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-05-18 20:00:25 +0200
commitce71265ae5bd333c309dff8c2d46e4d52dd78066 (patch)
tree0154d9c9aa7bd583d86e9a3a8151c8339fad5f46 /dev/kernel/src/HardwareThreadScheduler.cc
parent0266d8058990a496b935abd76417abcfe4e9cffd (diff)
feat(sched_desgin): better architecture for the HTS.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/HardwareThreadScheduler.cc')
-rw-r--r--dev/kernel/src/HardwareThreadScheduler.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/dev/kernel/src/HardwareThreadScheduler.cc b/dev/kernel/src/HardwareThreadScheduler.cc
index eda68104..09c1c7d8 100644
--- a/dev/kernel/src/HardwareThreadScheduler.cc
+++ b/dev/kernel/src/HardwareThreadScheduler.cc
@@ -104,16 +104,13 @@ Void HardwareThread::Wake(const bool wakeup) noexcept {
/// @retval true stack was changed, code is running.
/// @retval false stack is invalid, previous code is running.
/***********************************************************************************/
-Bool HardwareThread::Switch(HAL::StackFramePtr frame, const ThreadID& pid) {
+Bool HardwareThread::Switch(HAL::StackFramePtr frame) {
if (this->IsBusy()) return NO;
this->fStack = frame;
- this->fPID = pid;
Bool ret = mp_register_process(fStack, this->fPID);
- if (ret) this->Busy(YES);
-
return ret;
}
@@ -159,10 +156,12 @@ HAL::StackFramePtr HardwareThreadScheduler::Leak() noexcept {
/***********************************************************************************/
Ref<HardwareThread*> HardwareThreadScheduler::operator[](SizeT idx) {
if (idx >= kMaxAPInsideSched) {
- STATIC HardwareThread* kFakeThread = nullptr;
+ HardwareThread* kFakeThread = nullptr;
return {kFakeThread};
}
+ fThreadList[idx].fPID = idx;
+
return &fThreadList[idx];
}