diff options
| author | 2019-07-04 15:32:32 -0400 | |
|---|---|---|
| committer | 2019-07-04 15:32:32 -0400 | |
| commit | 54a02d14fd38282e446a56892a1c45f558ee0e42 (patch) | |
| tree | 79a86a51973712ee8307071a6c5dc471289746eb /src/core/hle/kernel/thread.cpp | |
| parent | Merge pull request #2670 from DarkLordZach/fix-merge-discrep-1 (diff) | |
| parent | kernel/process: Default initialize all member variables (diff) | |
| download | yuzu-54a02d14fd38282e446a56892a1c45f558ee0e42.tar.gz yuzu-54a02d14fd38282e446a56892a1c45f558ee0e42.tar.xz yuzu-54a02d14fd38282e446a56892a1c45f558ee0e42.zip | |
Merge pull request #2555 from lioncash/tls
kernel/process: Decouple TLS handling from threads
Diffstat (limited to 'src/core/hle/kernel/thread.cpp')
| -rw-r--r-- | src/core/hle/kernel/thread.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index a055a5002..ec529e7f2 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp | |||
| @@ -65,7 +65,7 @@ void Thread::Stop() { | |||
| 65 | owner_process->UnregisterThread(this); | 65 | owner_process->UnregisterThread(this); |
| 66 | 66 | ||
| 67 | // Mark the TLS slot in the thread's page as free. | 67 | // Mark the TLS slot in the thread's page as free. |
| 68 | owner_process->FreeTLSSlot(tls_address); | 68 | owner_process->FreeTLSRegion(tls_address); |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | void Thread::WakeAfterDelay(s64 nanoseconds) { | 71 | void Thread::WakeAfterDelay(s64 nanoseconds) { |
| @@ -205,9 +205,9 @@ ResultVal<SharedPtr<Thread>> Thread::Create(KernelCore& kernel, std::string name | |||
| 205 | thread->name = std::move(name); | 205 | thread->name = std::move(name); |
| 206 | thread->callback_handle = kernel.ThreadWakeupCallbackHandleTable().Create(thread).Unwrap(); | 206 | thread->callback_handle = kernel.ThreadWakeupCallbackHandleTable().Create(thread).Unwrap(); |
| 207 | thread->owner_process = &owner_process; | 207 | thread->owner_process = &owner_process; |
| 208 | thread->tls_address = thread->owner_process->CreateTLSRegion(); | ||
| 208 | thread->scheduler = &system.Scheduler(processor_id); | 209 | thread->scheduler = &system.Scheduler(processor_id); |
| 209 | thread->scheduler->AddThread(thread); | 210 | thread->scheduler->AddThread(thread); |
| 210 | thread->tls_address = thread->owner_process->MarkNextAvailableTLSSlotAsUsed(*thread); | ||
| 211 | 211 | ||
| 212 | thread->owner_process->RegisterThread(thread.get()); | 212 | thread->owner_process->RegisterThread(thread.get()); |
| 213 | 213 | ||