diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-18 20:00:25 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-18 20:00:25 +0200 |
| commit | ce71265ae5bd333c309dff8c2d46e4d52dd78066 (patch) | |
| tree | 0154d9c9aa7bd583d86e9a3a8151c8339fad5f46 /dev/kernel/src/HardwareThreadScheduler.cc | |
| parent | 0266d8058990a496b935abd76417abcfe4e9cffd (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.cc | 9 |
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]; } |
