Atmosphere/mesosphere/source/interfaces/ILimitedResource.cpp

27 lines
918 B
C++
Raw Normal View History

2018-10-31 20:47:31 +00:00
#include <mesosphere/interfaces/ILimitedResource.hpp>
#include <mesosphere/processes/KProcess.hpp>
#include <mesosphere/kresources/KResourceLimit.hpp>
namespace mesosphere::detail
{
void ReleaseResource(const SharedPtr<KResourceLimit> &reslimit, KAutoObject::TypeId typeId, size_t count, size_t realCount)
{
if (reslimit != nullptr) {
reslimit->Release(KResourceLimit::GetCategory(typeId), count, realCount);
} else {
KResourceLimit::GetDefaultInstance().Release(KResourceLimit::GetCategory(typeId), count, realCount);
}
}
void ReleaseResource(const SharedPtr<KProcess> &owner, KAutoObject::TypeId typeId, size_t count, size_t realCount)
{
if (owner != nullptr) {
return ReleaseResource(owner->GetResourceLimit(), typeId, count, realCount);
} else {
KResourceLimit::GetDefaultInstance().Release(KResourceLimit::GetCategory(typeId), count, realCount);
}
}
}