struct Thread_Context { ExpandableArena* temp; // Used for temporary allocations, scratch space. ExpandableArena* arena; // general purpose local arena Allocator allocator; s32 thread_idx; u16 _padding0; u16 GPAllocator_alignment = 16; // Logger logger; // Stack_Trace* stack_trace; // #TODO: other debug information // #TODO: // Array threads_created; // maybe should be linked-list? // Thread* thread_that_created_me = nullptr; // so we can remove from above array // Mutex thread_context_mutex; string thread_name; }; Thread_Context* get_thread_context ();