diff options
| author | 2022-01-17 18:06:33 -0800 | |
|---|---|---|
| committer | 2022-01-20 17:08:00 -0800 | |
| commit | 0b37e7cb39cb96857f3074f2bc5c7912b99baf9a (patch) | |
| tree | 84ccc955b57a9eab145557eb304ee2b365499400 | |
| parent | hle: kernel: KServerSession: Remove hack for CompleteSyncRequest. (diff) | |
| download | yuzu-0b37e7cb39cb96857f3074f2bc5c7912b99baf9a.tar.gz yuzu-0b37e7cb39cb96857f3074f2bc5c7912b99baf9a.tar.xz yuzu-0b37e7cb39cb96857f3074f2bc5c7912b99baf9a.zip | |
hle: kernel: service_thread: Ensure dummy thread is closed & destroyed on thread exit.
Diffstat (limited to '')
| -rw-r--r-- | src/core/hle/kernel/service_thread.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/hle/kernel/service_thread.cpp b/src/core/hle/kernel/service_thread.cpp index 03f3dec10..4eb3a5988 100644 --- a/src/core/hle/kernel/service_thread.cpp +++ b/src/core/hle/kernel/service_thread.cpp | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include "common/scope_exit.h" | 12 | #include "common/scope_exit.h" |
| 13 | #include "common/thread.h" | 13 | #include "common/thread.h" |
| 14 | #include "core/hle/kernel/k_session.h" | 14 | #include "core/hle/kernel/k_session.h" |
| 15 | #include "core/hle/kernel/k_thread.h" | ||
| 15 | #include "core/hle/kernel/kernel.h" | 16 | #include "core/hle/kernel/kernel.h" |
| 16 | #include "core/hle/kernel/service_thread.h" | 17 | #include "core/hle/kernel/service_thread.h" |
| 17 | 18 | ||
| @@ -50,6 +51,10 @@ ServiceThread::Impl::Impl(KernelCore& kernel, std::size_t num_threads, const std | |||
| 50 | 51 | ||
| 51 | kernel.RegisterHostThread(); | 52 | kernel.RegisterHostThread(); |
| 52 | 53 | ||
| 54 | // Ensure the dummy thread allocated for this host thread is closed on exit. | ||
| 55 | auto* dummy_thread = kernel.GetCurrentEmuThread(); | ||
| 56 | SCOPE_EXIT({ dummy_thread->Close(); }); | ||
| 57 | |||
| 53 | while (true) { | 58 | while (true) { |
| 54 | std::function<void()> task; | 59 | std::function<void()> task; |
| 55 | 60 | ||