From 5bb69d6d96316f0898e13347588f6c40643eac04 Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Wed, 19 Jul 2017 16:10:05 -0400 Subject: [PATCH] zipped the coroutine init code --- platform_all/4ed_shared_init_logic.cpp | 10 ++++++++++ platform_linux/linux_4ed.cpp | 11 +---------- platform_win32/win32_4ed.cpp | 9 +-------- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/platform_all/4ed_shared_init_logic.cpp b/platform_all/4ed_shared_init_logic.cpp index e2755902..ea951b1e 100644 --- a/platform_all/4ed_shared_init_logic.cpp +++ b/platform_all/4ed_shared_init_logic.cpp @@ -140,5 +140,15 @@ read_command_line(i32 argc, char **argv){ LOG("Read command line.\n"); } +internal void +coroutines_init(){ + init_coroutine_system(&coroutines); + + umem size = COROUTINE_SLOT_SIZE*18; + void *mem = system_memory_allocate(size); + coroutine_system_provide_memory(&coroutines, mem, size); + coroutine_system_force_init(&coroutines, 4); +} + // BOTTOM diff --git a/platform_linux/linux_4ed.cpp b/platform_linux/linux_4ed.cpp index 4285390a..87d3974a 100644 --- a/platform_linux/linux_4ed.cpp +++ b/platform_linux/linux_4ed.cpp @@ -1629,16 +1629,7 @@ main(int argc, char **argv){ // Coroutines // - linuxvars.coroutine_free = linuxvars.coroutine_data; - for (i32 i = 0; i+1 < ArrayCount(linuxvars.coroutine_data); ++i){ - linuxvars.coroutine_data[i].next = &linuxvars.coroutine_data[i + 1]; - } - - const size_t stack_size = MB(2); - for (i32 i = 0; i < ArrayCount(linuxvars.coroutine_data); ++i){ - linuxvars.coroutine_data[i].stack.ss_size = stack_size; - linuxvars.coroutine_data[i].stack.ss_sp = system_memory_allocate(stack_size); - } + coroutines_init(); // // X11 init diff --git a/platform_win32/win32_4ed.cpp b/platform_win32/win32_4ed.cpp index 44ef21ec..cf67b730 100644 --- a/platform_win32/win32_4ed.cpp +++ b/platform_win32/win32_4ed.cpp @@ -1065,14 +1065,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdS // Coroutines // - { - init_coroutine_system(&coroutines); - - umem size = COROUTINE_SLOT_SIZE*18; - void *mem = system_memory_allocate(size); - coroutine_system_provide_memory(&coroutines, mem, size); - coroutine_system_force_init(&coroutines, 4); - } + coroutines_init(); // // Window and GL Initialization