forked from eden-emu/eden
core: hle: kernel: k_process: Implement thread local storage accurately.
This commit is contained in:
parent
3210bc2767
commit
813b2ef253
3 changed files with 99 additions and 111 deletions
|
@ -210,7 +210,7 @@ ResultCode KThread::Initialize(KThreadFunction func, uintptr_t arg, VAddr user_s
|
|||
if (owner != nullptr) {
|
||||
// Setup the TLS, if needed.
|
||||
if (type == ThreadType::User) {
|
||||
tls_address = owner->CreateTLSRegion();
|
||||
R_TRY(owner->CreateThreadLocalRegion(std::addressof(tls_address)));
|
||||
}
|
||||
|
||||
parent = owner;
|
||||
|
@ -305,7 +305,7 @@ void KThread::Finalize() {
|
|||
|
||||
// If the thread has a local region, delete it.
|
||||
if (tls_address != 0) {
|
||||
parent->FreeTLSRegion(tls_address);
|
||||
ASSERT(parent->DeleteThreadLocalRegion(tls_address).IsSuccess());
|
||||
}
|
||||
|
||||
// Release any waiters.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue