summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/Sources/HardwareThreadScheduler.cxx
diff options
context:
space:
mode:
authorAmlal <amlal@el-mahrouss-logic.com>2024-09-09 16:49:28 +0200
committerAmlal <amlal@el-mahrouss-logic.com>2024-09-09 16:49:28 +0200
commit6dbc74799f465eec249e2d8f01a472d0dd3b33c8 (patch)
tree53ef934c936537424e1b8d2469cf12fd421234e3 /dev/ZKA/Sources/HardwareThreadScheduler.cxx
parent6274e822da7790961dc8f587cd83645f06e79245 (diff)
FIX: Scheduler improvements, MM improvements, worked on a tiny bmp allocator for pages.
Signed-off-by: Amlal <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'dev/ZKA/Sources/HardwareThreadScheduler.cxx')
-rw-r--r--dev/ZKA/Sources/HardwareThreadScheduler.cxx21
1 files changed, 15 insertions, 6 deletions
diff --git a/dev/ZKA/Sources/HardwareThreadScheduler.cxx b/dev/ZKA/Sources/HardwareThreadScheduler.cxx
index e5947357..22a69b9b 100644
--- a/dev/ZKA/Sources/HardwareThreadScheduler.cxx
+++ b/dev/ZKA/Sources/HardwareThreadScheduler.cxx
@@ -43,6 +43,14 @@ namespace Kernel
//! @brief is the thread busy?
Bool HardwareThread::IsBusy() noexcept
{
+ STATIC Int64 busy_timer = 0U;
+
+ if (busy_timer > this->fPTime)
+ {
+ busy_timer = 0U;
+ fBusy = No;
+ }
+
return fBusy;
}
@@ -95,16 +103,17 @@ namespace Kernel
if (!this->IsWakeup())
return No;
- fStack = frame;
-
if (this->IsBusy())
- return false;
+ return No;
- kcout << "Registering process bank...\r";
+ fStack = frame;
+
+ kcout << "Trying to register progress...\r";
- this->Busy(true);
Bool ret = mp_register_process(image, stack_ptr, fStack);
- this->Busy(false);
+
+ if (ret)
+ this->Busy(true);
return ret;
}