Musa-Cpp-Lib-V2/lib/Base/Base_Thread_Context.cpp

42 lines
1.0 KiB
C++

#include "Base_Thread_Context.h"
// C_LINKAGE thread_static TCTX* tctx_thread_local;
thread_static Thread_Context* thread_local_context;
// Start from w32_entry_point_caller ->
// see main_thread_base_entry_point
// //- rjf: set up thread context
// TCTX *tctx = tctx_alloc();
// tctx_select(tctx);
// See: tctx_alloc(void)
// Let's do arenas first.
void init_thread_context(Thread_Context* tctx) {
// Should be Arena-bootstrapped with Temp Arena maybe?
// #TODO - call from entry point.
}
Thread_Context* get_thread_context() {
return (Thread_Context*)thread_local_context;
}
force_inline Allocator get_temp_allocator() {
return get_allocator(get_thread_context()->temp);
}
force_inline Allocator get_context_allocator() {
Thread_Context* context = get_thread_context();
return context->allocator;
}
void temp_reset_keeping_memory() {
Thread_Context* context = get_thread_context();
arena_reset_keeping_memory(context->temp);
}
void temp_reset() {
Thread_Context* context = get_thread_context();
arena_reset(context->temp);
}