uxnemu: use read() in stdin thread and close(0) at shutdown for the thread to exit

This commit is contained in:
Sigrid Solveig Haflínudóttir 2022-03-28 17:49:54 +02:00
parent f06494477a
commit 0b75afc415
1 changed files with 3 additions and 1 deletions

View File

@ -1,5 +1,6 @@
#include <stdio.h> #include <stdio.h>
#include <time.h> #include <time.h>
#include <unistd.h>
#include "uxn.h" #include "uxn.h"
@ -81,7 +82,7 @@ stdin_handler(void *p)
{ {
SDL_Event event; SDL_Event event;
event.type = stdin_event; event.type = stdin_event;
while(fread(&event.cbutton.button, 1, 1, stdin) > 0 && SDL_PushEvent(&event) >= 0) while(read(0, &event.cbutton.button, 1) > 0 && SDL_PushEvent(&event) >= 0)
; ;
return 0; return 0;
(void)p; (void)p;
@ -514,6 +515,7 @@ main(int argc, char **argv)
if(!loaded && !start(&u, "launcher.rom")) if(!loaded && !start(&u, "launcher.rom"))
return error("usage", "uxnemu [-s scale] file.rom"); return error("usage", "uxnemu [-s scale] file.rom");
run(&u); run(&u);
close(0); /* make stdin thread exit */
SDL_Quit(); SDL_Quit();
return 0; return 0;
} }