summaryrefslogtreecommitdiffhomepage
path: root/dev/zka/src/UserProcessScheduler.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dev/zka/src/UserProcessScheduler.cxx')
-rw-r--r--dev/zka/src/UserProcessScheduler.cxx12
1 files changed, 8 insertions, 4 deletions
diff --git a/dev/zka/src/UserProcessScheduler.cxx b/dev/zka/src/UserProcessScheduler.cxx
index ed2cfa17..d0236578 100644
--- a/dev/zka/src/UserProcessScheduler.cxx
+++ b/dev/zka/src/UserProcessScheduler.cxx
@@ -441,6 +441,10 @@ namespace Kernel
continue;
}
}
+ else
+ {
+ --process.PTime;
+ }
}
kcout << "Scheduled Process Count: " << number(process_index) << endl;
@@ -476,9 +480,9 @@ namespace Kernel
/// @param process the process reference.
/// @retval true can be schedulded.
/// @retval false cannot be schedulded.
- bool UserProcessHelper::CanBeScheduled(const UserProcess& process)
+ Bool UserProcessHelper::CanBeScheduled(const UserProcess& process)
{
- kcout << "Checking process status...\r";
+ kcout << "Checking UserProcess status...\r";
if (process.Status == ProcessStatusKind::kFrozen ||
process.Status == ProcessStatusKind::kDead)
@@ -488,7 +492,7 @@ namespace Kernel
process.Kind == UserProcess::kExectuableKind)
return No;
- return Yes;
+ return process.PTime < 1 && process.Status == ProcessStatusKind::kRunning;
}
/***********************************************************************************/
@@ -502,7 +506,7 @@ namespace Kernel
if (!cProcessScheduler)
{
cProcessScheduler = mm_new_class<UserProcessScheduler>();
- return cProcessScheduler;
+ return Yes;
}
return No;