42 lines
1.0 KiB
C++
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);
|
|
} |