diff --git a/red_scarf_engine/src/main.c b/red_scarf_engine/src/main.c index b1a49570..4a5fa867 100644 --- a/red_scarf_engine/src/main.c +++ b/red_scarf_engine/src/main.c @@ -10,6 +10,7 @@ int main(int argc, char** argv) rse_graphics_init(); rse_create_task(&graphics_task, (thread_worker_t)rse_graphics_run, NULL); + rse_task_join(&graphics_task); - return 0; + rse_task_exit(); //TODO: Figure out why program is so much faster if we don't join the graphics_task. WTF. } diff --git a/utilities/rse_task.h b/utilities/rse_task.h index 615536b8..56077337 100644 --- a/utilities/rse_task.h +++ b/utilities/rse_task.h @@ -23,7 +23,6 @@ typedef void*(*thread_worker_t)(void*); uint8_t rse_create_task(rse_thread_t* thread_id, thread_worker_t callback, void* args); uint8_t rse_task_join(rse_thread_t* thread_id); -void rse_task_delay(void); - +void rse_task_exit(void); #endif /* RSE_THREADS_H */ \ No newline at end of file diff --git a/utilities/src/rse_task_linux.c b/utilities/src/rse_task_linux.c index bfe2a09c..553fccd2 100644 --- a/utilities/src/rse_task_linux.c +++ b/utilities/src/rse_task_linux.c @@ -18,5 +18,7 @@ uint8_t rse_task_join(rse_thread_t* thread_id) return result; //TODO: Do error handling } -void rse_task_delay(void) -{} \ No newline at end of file +void rse_task_exit() +{ + pthread_exit(NULL); +} \ No newline at end of file