summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/UserProcessScheduler.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-10-24 12:05:40 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-10-24 12:05:40 +0200
commit744e9aba579a51dcab8f78009cbc091ce3cd8503 (patch)
treefd7d3d79f9a313f7311ae56f809aff1605e98297 /dev/kernel/src/UserProcessScheduler.cc
parente1b8ba28465ac52638d849fb4179eceb55e257ab (diff)
feat: scheduler: process scheduler improvements and wip subsystem.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/UserProcessScheduler.cc')
-rw-r--r--dev/kernel/src/UserProcessScheduler.cc10
1 files changed, 3 insertions, 7 deletions
diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc
index 2306d3e4..ac25c3d8 100644
--- a/dev/kernel/src/UserProcessScheduler.cc
+++ b/dev/kernel/src/UserProcessScheduler.cc
@@ -581,17 +581,13 @@ ErrorOr<ProcessID> UserProcessHelper::TheCurrentPID() {
/// @retval true can be schedulded.
/// @retval false cannot be schedulded.
Bool UserProcessHelper::CanBeScheduled(const USER_PROCESS& process) {
+ if (process.Affinity == AffinityKind::kRealTime) return Yes;
+
if (process.Status != ProcessStatusKind::kRunning) return No;
if (process.Affinity == AffinityKind::kInvalid) return No;
if (process.StackSize > kSchedMaxStackSz) return No;
if (!process.Name[0]) return No;
-
- // real time processes shouldn't wait that much.
- if (process.Affinity == AffinityKind::kRealTime) return Yes;
-
- if (process.Signal.SignalID == sig_generate_unique<SIGTRAP>()) {
- return No;
- }
+ if (process.Signal.SignalID == sig_generate_unique<SIGTRAP>()) return No;
return process.PTime < 1;
}