summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/main.c b/src/main.c
index f30238c..84ec3eb 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;
}