mirror of
https://github.com/Atmosphere-NX/Atmosphere
synced 2024-12-22 20:31:14 +00:00
meso: invert process<>thread header deps
This commit is contained in:
parent
91662decf0
commit
1a924ad317
4 changed files with 33 additions and 11 deletions
|
@ -7,13 +7,14 @@ class KResourceLimit;
|
|||
#include <mesosphere/core/KSynchronizationObject.hpp>
|
||||
#include <mesosphere/interfaces/ISetAllocated.hpp>
|
||||
#include <mesosphere/processes/KHandleTable.hpp>
|
||||
#include <mesosphere/threading/KThread.hpp>
|
||||
|
||||
namespace mesosphere
|
||||
{
|
||||
|
||||
class KProcess final : public KSynchronizationObject /* FIXME */ {
|
||||
public:
|
||||
MESOSPHERE_AUTO_OBJECT_TRAITS(AutoObject, Process);
|
||||
MESOSPHERE_AUTO_OBJECT_TRAITS(SynchronizationObject, Process);
|
||||
|
||||
enum class State : uint {
|
||||
Created = 0,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include <mesosphere/core/Handle.hpp>
|
||||
#include <mesosphere/core/Result.hpp>
|
||||
#include <mesosphere/core/KSynchronizationObject.hpp>
|
||||
#include <mesosphere/processes/KProcess.hpp>
|
||||
#include <mesosphere/interfaces/ISetAllocated.hpp>
|
||||
#include <mesosphere/interfaces/IAlarmable.hpp>
|
||||
#include <mesosphere/interfaces/ILimitedResource.hpp>
|
||||
|
||||
|
@ -144,18 +144,13 @@ class KThread final :
|
|||
}
|
||||
|
||||
KProcess *GetOwner() const { return owner; }
|
||||
bool IsSchedulerOperationRedundant() const { return owner != nullptr && owner->GetSchedulerOperationCount() == redundantSchedulerOperationCount; }
|
||||
bool IsSchedulerOperationRedundant() const;
|
||||
|
||||
void IncrementSchedulerOperationCount() { if (owner != nullptr) owner->IncrementSchedulerOperationCount(); }
|
||||
void SetRedundantSchedulerOperation() { redundantSchedulerOperationCount = owner != nullptr ? owner->GetSchedulerOperationCount() : redundantSchedulerOperationCount; }
|
||||
void IncrementSchedulerOperationCount();
|
||||
void SetRedundantSchedulerOperation();
|
||||
void SetCurrentCoreId(int coreId) { currentCoreId = coreId; }
|
||||
|
||||
void SetProcessLastThreadAndIdleSelectionCount(ulong idleSelectionCount)
|
||||
{
|
||||
if (owner != nullptr) {
|
||||
owner->SetLastThreadAndIdleSelectionCount(this, idleSelectionCount);
|
||||
}
|
||||
}
|
||||
void SetProcessLastThreadAndIdleSelectionCount(ulong idleSelectionCount);
|
||||
|
||||
void UpdateLastScheduledTime() { ++lastScheduledTime; /* FIXME */}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include <algorithm>
|
||||
#include <mesosphere/processes/KHandleTable.hpp>
|
||||
#include <mesosphere/threading/KThread.hpp>
|
||||
#include <mesosphere/processes/KProcess.hpp>
|
||||
|
||||
namespace mesosphere
|
||||
{
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include <algorithm>
|
||||
|
||||
#include <mesosphere/threading/KThread.hpp>
|
||||
#include <mesosphere/processes/KProcess.hpp>
|
||||
#include <mesosphere/threading/KScopedCriticalSection.hpp>
|
||||
|
||||
namespace mesosphere
|
||||
|
@ -13,6 +14,30 @@ void KThread::OnAlarm()
|
|||
CancelKernelSync();
|
||||
}
|
||||
|
||||
bool KThread::IsSchedulerOperationRedundant() const
|
||||
{
|
||||
return owner != nullptr && owner->GetSchedulerOperationCount() == redundantSchedulerOperationCount;
|
||||
}
|
||||
|
||||
void KThread::IncrementSchedulerOperationCount()
|
||||
{
|
||||
if (owner != nullptr) {
|
||||
owner->IncrementSchedulerOperationCount();
|
||||
}
|
||||
}
|
||||
|
||||
void KThread::SetRedundantSchedulerOperation()
|
||||
{
|
||||
redundantSchedulerOperationCount = owner != nullptr ? owner->GetSchedulerOperationCount() : redundantSchedulerOperationCount;
|
||||
}
|
||||
|
||||
void KThread::SetProcessLastThreadAndIdleSelectionCount(ulong idleSelectionCount)
|
||||
{
|
||||
if (owner != nullptr) {
|
||||
owner->SetLastThreadAndIdleSelectionCount(this, idleSelectionCount);
|
||||
}
|
||||
}
|
||||
|
||||
void KThread::AdjustScheduling(ushort oldMaskFull)
|
||||
{
|
||||
if (currentSchedMaskFull == oldMaskFull) {
|
||||
|
|
Loading…
Reference in a new issue