summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/UserProcessScheduler.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-24 15:52:36 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-04-24 15:52:36 +0200
commit7faa5e2fcf41c4fbb2241b605e8f2a11738fc4d9 (patch)
tree4395820c8cab023c8e794e44e93eabefc26ac9b6 /dev/kernel/src/UserProcessScheduler.cc
parentde88c44c68f3941e003ddaf13042875370f10978 (diff)
dev, kernel: scheduler, timer: hw timer and scheduler improvements.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/UserProcessScheduler.cc')
-rw-r--r--dev/kernel/src/UserProcessScheduler.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc
index 8df98f87..7aded611 100644
--- a/dev/kernel/src/UserProcessScheduler.cc
+++ b/dev/kernel/src/UserProcessScheduler.cc
@@ -31,8 +31,10 @@ namespace Kernel
STATIC UInt32 kLastExitCode = 0U;
+ STATIC BOOL kCurrentlySwitching = No;
+
/***********************************************************************************/
- /// @brief External reference of the thread scheduler.
+ /// @brief Scheduler itself.
/***********************************************************************************/
STATIC UserProcessScheduler kScheduler;
@@ -470,6 +472,8 @@ namespace Kernel
return 0UL;
}
+ kCurrentlySwitching = Yes;
+
for (; process_index < mTeam.AsArray().Capacity(); ++process_index)
{
auto& process = mTeam.AsArray()[process_index];
@@ -502,6 +506,8 @@ namespace Kernel
}
}
+ kCurrentlySwitching = No;
+
return process_index;
}
@@ -524,6 +530,9 @@ namespace Kernel
if (team.AsArray().Count() < 1)
return No;
+ if (kCurrentlySwitching)
+ return No;
+
kScheduler.mTeam = team;
return Yes;