diff options
| author | 2021-02-12 19:05:24 -0500 | |
|---|---|---|
| committer | 2021-02-12 19:05:24 -0500 | |
| commit | ec9b6641b12aa04ae3d7782b0423037dbc1400ac (patch) | |
| tree | fc563f28673dfe851cfaf665951423e0ad759025 /src/core/hle/kernel/process.cpp | |
| parent | kernel: KScopedReservation implementation (diff) | |
| download | yuzu-ec9b6641b12aa04ae3d7782b0423037dbc1400ac.tar.gz yuzu-ec9b6641b12aa04ae3d7782b0423037dbc1400ac.tar.xz yuzu-ec9b6641b12aa04ae3d7782b0423037dbc1400ac.zip | |
kernel: More accurately reserve and release resources
Diffstat (limited to 'src/core/hle/kernel/process.cpp')
| -rw-r--r-- | src/core/hle/kernel/process.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index 05e21830c..47b3ac57b 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp | |||
| @@ -39,6 +39,7 @@ namespace { | |||
| 39 | */ | 39 | */ |
| 40 | void SetupMainThread(Core::System& system, Process& owner_process, u32 priority, VAddr stack_top) { | 40 | void SetupMainThread(Core::System& system, Process& owner_process, u32 priority, VAddr stack_top) { |
| 41 | const VAddr entry_point = owner_process.PageTable().GetCodeRegionStart(); | 41 | const VAddr entry_point = owner_process.PageTable().GetCodeRegionStart(); |
| 42 | ASSERT(owner_process.GetResourceLimit()->Reserve(LimitableResource::Threads, 1)); | ||
| 42 | auto thread_res = KThread::Create(system, ThreadType::User, "main", entry_point, priority, 0, | 43 | auto thread_res = KThread::Create(system, ThreadType::User, "main", entry_point, priority, 0, |
| 43 | owner_process.GetIdealCoreId(), stack_top, &owner_process); | 44 | owner_process.GetIdealCoreId(), stack_top, &owner_process); |
| 44 | 45 | ||
| @@ -279,7 +280,7 @@ ResultCode Process::LoadFromMetadata(const FileSys::ProgramMetadata& metadata, | |||
| 279 | if (!memory_reservation.Succeeded()) { | 280 | if (!memory_reservation.Succeeded()) { |
| 280 | LOG_ERROR(Kernel, "Could not reserve process memory requirements of size {:X} bytes", | 281 | LOG_ERROR(Kernel, "Could not reserve process memory requirements of size {:X} bytes", |
| 281 | code_size + system_resource_size); | 282 | code_size + system_resource_size); |
| 282 | return ERR_RESOURCE_LIMIT_EXCEEDED; | 283 | return ResultResourceLimitedExceeded; |
| 283 | } | 284 | } |
| 284 | // Initialize proces address space | 285 | // Initialize proces address space |
| 285 | if (const ResultCode result{ | 286 | if (const ResultCode result{ |