diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 39 |
1 files changed, 19 insertions, 20 deletions
@@ -7,12 +7,22 @@ #include "ui.h" #include "console.h" + +//TEST +#include <readline/readline.h> + int main(void) { int rv = 0; r_window *first_window; phy_sim sim; - SDL_Thread *sim_thread, *con_thread; + SDL_Thread *sim_thread = NULL; + + if (con_init(&sim)) { + con_printf("fatal error: console initialization failed\n"); + rv = 1; + goto quit; + } if (r_init()) { con_printf("fatal error: renderer initialization failed\n"); @@ -53,21 +63,6 @@ int main(void) goto quit; } - if (con_init()) { - con_printf("fatal error: console initialization failed\n"); - rv = 1; - goto quit; - } - - con_thread = SDL_CreateThread((SDL_ThreadFunction)con_thread_f, - "con_thread", &sim); - if (!con_thread) { - con_printf("fatal error: SDL_CreateThread failed: %s\n", - SDL_GetError()); - rv = 1; - goto quit; - } - while (1) { SDL_Event event; @@ -84,12 +79,16 @@ int main(void) quit: con_printf("main: exitting, rv=%i\n", rv); - itc_chan_push(&sim.ctl, PHY_CMD_QUIT, NULL); - SDL_WaitThread(sim_thread, NULL); - phy_sim_destroy(&sim); - ui_quit(); r_quit(); + + if (sim_thread) { + itc_chan_push(&sim.ctl, PHY_CMD_QUIT, NULL); + SDL_WaitThread(sim_thread, NULL); + } + + phy_sim_destroy(&sim); + con_quit(); SDL_Quit(); return rv; } |