#include "mingw_help.h" SDL_sem * get_mingw_read_sem() { return mingw_read_sem; }; int get_mingw_readed() { return mingw_readed; }; int set_mingw_readed(int tmp) { mingw_readed = tmp; return mingw_readed; }; int get_mingw_char_read() { return mingw_char_read; }; int set_mingw_char_read(int tmp) { mingw_char_read = tmp; return mingw_char_read; }; int get_mingw_read_fd() { return mingw_read_fd; }; int set_mingw_read_fd(int tmp) { mingw_read_fd = tmp; return mingw_read_fd; }; int get_mingw_sem_first_time() { return mingw_sem_first_time; }; int set_mingw_sem_first_time(int tmp) { mingw_sem_first_time = tmp; return mingw_sem_first_time; }; int mingw_read_thread(void * par) { while(1) { if(SDL_SemWait(mingw_read_sem) != -1) { if( mingw_readed == 0) { read (mingw_read_fd, &mingw_char_read, 1); mingw_readed = 1; } if(mingw_sem_first_time == 1) mingw_sem_first_time = 0; SDL_SemPost(mingw_read_sem); printf(" \b"); fflush(stdout); } } } void mingw_start_thread(int fd) { static int mingw_first_run = 1; if(mingw_first_run == 1) { mingw_first_run = 0; mingw_read_fd = fd; mingw_read_sem = SDL_CreateSemaphore(1); SDL_CreateThread(mingw_read_thread, NULL); } }