diff --git a/Userland/Libraries/LibC/malloc.cpp b/Userland/Libraries/LibC/malloc.cpp index 05381069dcff72..e03b2ce26ee5f9 100644 --- a/Userland/Libraries/LibC/malloc.cpp +++ b/Userland/Libraries/LibC/malloc.cpp @@ -291,9 +291,7 @@ enum class CallerWillInitializeMemory { }; #ifndef NO_TLS -// HACK: This is a __thread - marked thread-local variable. If we initialize it globally here, VERY weird errors happen. -// The initialization happens in __malloc_init() and pthread_create_helper(). -__thread bool s_allocation_enabled; +__thread bool s_allocation_enabled = true; #endif static ErrorOr malloc_impl(size_t size, size_t align, CallerWillInitializeMemory caller_will_initialize_memory) @@ -697,12 +695,6 @@ void* realloc(void* ptr, size_t size) void __malloc_init() { -#ifndef NO_TLS - // HACK: This is a __thread - marked thread-local variable. If we initialize it globally, VERY weird errors happen. - // Therefore, we need to do the initialization here and in pthread_create_helper(). - s_allocation_enabled = true; -#endif - s_in_userspace_emulator = (int)syscall(SC_emuctl, 0) != -ENOSYS; if (s_in_userspace_emulator) { // Don't bother scrubbing memory if we're running in UE since it diff --git a/Userland/Libraries/LibC/pthread.cpp b/Userland/Libraries/LibC/pthread.cpp index 2e46f2f21ffda5..7dd5771ad83981 100644 --- a/Userland/Libraries/LibC/pthread.cpp +++ b/Userland/Libraries/LibC/pthread.cpp @@ -64,9 +64,6 @@ extern "C" { static void* pthread_create_helper(void* (*routine)(void*), void* argument, void* stack_location, size_t stack_size) { - // HACK: This is a __thread - marked thread-local variable. If we initialize it globally, VERY weird errors happen. - // Therefore, we need to do the initialization here and in __malloc_init(). - s_allocation_enabled = true; s_stack_location = stack_location; s_stack_size = stack_size; void* ret_val = routine(argument);