1
0
Fork 0
mirror of https://github.com/Atmosphere-NX/Atmosphere.git synced 2025-01-10 11:26:15 +00:00
Atmosphere/mesosphere/source/processes/KProcess.cpp

46 lines
1.2 KiB
C++
Raw Normal View History

2018-10-31 20:47:31 +00:00
#include <mesosphere/processes/KProcess.hpp>
#include <mesosphere/threading/KThread.hpp>
#include <mesosphere/kresources/KResourceLimit.hpp>
namespace mesosphere
{
void KProcess::SetLastThreadAndIdleSelectionCount(KThread *thread, ulong idleSelectionCount)
{
lastThreads[thread->GetCurrentCoreId()] = thread;
lastIdleSelectionCount[thread->GetCurrentCoreId()] = idleSelectionCount;
}
2018-11-15 10:49:32 +00:00
bool KProcess::IsSignaled() const
{
return stateChanged;
}
void KProcess::SetDebug(KDebug *debug)
{
this->debug = debug;
if (state != State::DebugSuspended) {
state = state == State::Created ? State::CreatedAttached : State::DebugSuspended;
stateChanged = true;
NotifyWaiters();
}
}
void KProcess::ClearDebug(KProcess::State attachState)
{
debug = nullptr;
State oldState = state;
if (state == State::StartedAttached || state == State::DebugSuspended) {
state = attachState == State::Created ? State::Started : attachState; // Restore the old state
} else if (state == State::CreatedAttached) {
state = State::Created;
}
if (state != oldState) {
stateChanged = true;
NotifyWaiters();
}
}
2018-10-31 20:47:31 +00:00
}