//////////////////////////////// //~ Shared state #define W32_MaxOnExitFuncs 1024 Struct(W32_SharedEntryCtx) { SYSTEM_INFO info; u32 main_thread_id; Atomic32 shutdown; wchar_t cmdline_args_wstr[8192]; //- Application control flow Atomic32 panicking; wchar_t panic_wstr[4096]; HANDLE panic_event; HANDLE startup_end_event; HANDLE exit_begin_event; HANDLE exit_end_event; //- Exit funcs Atomic32 num_exit_funcs; ExitFunc *exit_funcs[W32_MaxOnExitFuncs]; }; extern W32_SharedEntryCtx W32_shared_entry_ctx; //////////////////////////////// //~ Startup / shutdown jobs JobDecl(W32_AppStartupJob, EmptySig); JobDecl(W32_AppShutdownJob, EmptySig);